Index: compiler/java/com/google/dart/compiler/parser/DartParser.java |
diff --git a/compiler/java/com/google/dart/compiler/parser/DartParser.java b/compiler/java/com/google/dart/compiler/parser/DartParser.java |
index 8fb0716a93ab58ef74f8614d319a1b3fcd108005..03b6ac51acd6dddc19b772801603b88df985c811 100644 |
--- a/compiler/java/com/google/dart/compiler/parser/DartParser.java |
+++ b/compiler/java/com/google/dart/compiler/parser/DartParser.java |
@@ -1864,7 +1864,8 @@ public class DartParser extends CompletionHooksParserBase { |
if (token.isAssignmentOperator()) { |
ensureAssignable(result); |
consume(token); |
- result = done(new DartBinaryExpression(token, result, parseExpression())); |
+ int tokenOffset = ctx.getTokenLocation().getBegin().getPos(); |
+ result = done(new DartBinaryExpression(token, tokenOffset, result, parseExpression())); |
} else { |
done(null); |
} |
@@ -1882,7 +1883,8 @@ public class DartParser extends CompletionHooksParserBase { |
DartExpression result = parseExpression(); |
// Must keep in sync with @Terminals above |
while (optional(Token.COMMA)) { |
- result = new DartBinaryExpression(Token.COMMA, result, parseExpression()); |
+ int tokenOffset = ctx.getTokenLocation().getBegin().getPos(); |
+ result = new DartBinaryExpression(Token.COMMA, tokenOffset, result, parseExpression()); |
if (match(Token.COMMA)) { |
result = doneWithoutConsuming(result); |
} |
@@ -1948,6 +1950,7 @@ public class DartParser extends CompletionHooksParserBase { |
Position prevPositionStart = ctx.getTokenLocation().getBegin(); |
Position prevPositionEnd = ctx.getTokenLocation().getEnd(); |
Token token = next(); |
+ int tokenOffset = ctx.getTokenLocation().getBegin().getPos(); |
if (lastResult instanceof DartSuperExpression |
&& (token == Token.AND || token == Token.OR)) { |
reportErrorAtPosition(prevPositionStart, prevPositionEnd, |
@@ -1975,7 +1978,7 @@ public class DartParser extends CompletionHooksParserBase { |
} |
lastResult = right; |
- result = doneWithoutConsuming(new DartBinaryExpression(token, result, right)); |
+ result = doneWithoutConsuming(new DartBinaryExpression(token, tokenOffset, result, right)); |
if (token == Token.IS |
|| token == Token.AS |
|| token.isRelationalOperator() |