aboutsummaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorLiam Miller-Cushon <cushon@google.com>2021-07-20 12:30:51 -0700
committerJavac Team <javac-team+copybara@google.com>2021-07-20 12:31:28 -0700
commit08d22a6682829f7a4da2bfca7775fdd8b5ff000b (patch)
treeb1b00c291c7e07a9eb2dbed00cbb3ec9dde717f1 /java
parent5b53d38e73c8412a9591cd9ced29b8f1978025fb (diff)
downloadturbine-08d22a6682829f7a4da2bfca7775fdd8b5ff000b.tar.gz
Pass position into `ConstExpressionParser`
PiperOrigin-RevId: 385846241
Diffstat (limited to 'java')
-rw-r--r--java/com/google/turbine/parse/ConstExpressionParser.java4
-rw-r--r--java/com/google/turbine/parse/Parser.java8
2 files changed, 7 insertions, 5 deletions
diff --git a/java/com/google/turbine/parse/ConstExpressionParser.java b/java/com/google/turbine/parse/ConstExpressionParser.java
index ba51814..f0ce692 100644
--- a/java/com/google/turbine/parse/ConstExpressionParser.java
+++ b/java/com/google/turbine/parse/ConstExpressionParser.java
@@ -40,10 +40,10 @@ public class ConstExpressionParser {
private int position;
private final Lexer lexer;
- public ConstExpressionParser(Lexer lexer, Token token) {
+ public ConstExpressionParser(Lexer lexer, Token token, int position) {
this.lexer = lexer;
this.token = token;
- this.position = lexer.position();
+ this.position = position;
}
private static TurbineOperatorKind operator(Token token) {
diff --git a/java/com/google/turbine/parse/Parser.java b/java/com/google/turbine/parse/Parser.java
index af1eabf..40c9cab 100644
--- a/java/com/google/turbine/parse/Parser.java
+++ b/java/com/google/turbine/parse/Parser.java
@@ -850,7 +850,8 @@ public class Parser {
Type ty = baseTy;
ty = parser.extraDims(ty);
// TODO(cushon): skip more fields that are definitely non-const
- ConstExpressionParser constExpressionParser = new ConstExpressionParser(lexer, lexer.next());
+ ConstExpressionParser constExpressionParser =
+ new ConstExpressionParser(lexer, lexer.next(), lexer.position());
expressionStart = lexer.position();
Expression init = constExpressionParser.expression();
if (init != null && init.kind() == Tree.Kind.ARRAY_INIT) {
@@ -895,7 +896,8 @@ public class Parser {
break;
case DEFAULT:
{
- ConstExpressionParser cparser = new ConstExpressionParser(lexer, lexer.next());
+ ConstExpressionParser cparser =
+ new ConstExpressionParser(lexer, lexer.next(), lexer.position());
Tree expr = cparser.expression();
token = cparser.token;
if (expr == null && token == Token.AT) {
@@ -1369,7 +1371,7 @@ public class Parser {
if (token == Token.LPAREN) {
eat(LPAREN);
while (token != RPAREN) {
- ConstExpressionParser cparser = new ConstExpressionParser(lexer, token);
+ ConstExpressionParser cparser = new ConstExpressionParser(lexer, token, position);
Expression arg = cparser.expression();
if (arg == null) {
throw error(ErrorKind.INVALID_ANNOTATION_ARGUMENT);