Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Unified Diff: compiler/java/com/google/dart/compiler/parser/DartParser.java

Issue 10558014: Use operator location for operator resolving problems (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 a1d85a9135bc35efc77ba1faacba965450633a03..e00d38af0aa096dc520257f516188f444bf4b80d 100644
--- a/compiler/java/com/google/dart/compiler/parser/DartParser.java
+++ b/compiler/java/com/google/dart/compiler/parser/DartParser.java
@@ -1973,9 +1973,10 @@ public class DartParser extends CompletionHooksParserBase {
if (token == Token.IS) {
beginTypeExpression();
if (optional(Token.NOT)) {
+ int notOffset = ctx.getTokenLocation().getBegin().getPos();
beginTypeExpression();
DartTypeExpression typeExpression = done(new DartTypeExpression(parseTypeAnnotation()));
- right = done(new DartUnaryExpression(Token.NOT, typeExpression, true));
+ right = done(new DartUnaryExpression(Token.NOT, notOffset, typeExpression, true));
} else {
right = done(new DartTypeExpression(parseTypeAnnotation()));
}
@@ -2469,7 +2470,8 @@ public class DartParser extends CompletionHooksParserBase {
if (token.isCountOperator()) {
ensureAssignable(result);
consume(token);
- result = doneWithoutConsuming(new DartUnaryExpression(token, result, false));
+ int tokenOffset = ctx.getTokenLocation().getBegin().getPos();
+ result = doneWithoutConsuming(new DartUnaryExpression(token, tokenOffset, result, false));
}
return done(result);
@@ -4167,16 +4169,19 @@ public class DartParser extends CompletionHooksParserBase {
beginUnaryExpression();
beginUnaryExpression();
consume(token);
+ int tokenOffset = ctx.getTokenLocation().getBegin().getPos();
DartExpression unary = parseUnaryExpression();
- return done(new DartUnaryExpression(Token.SUB, done(new DartUnaryExpression(Token.SUB, unary, true)), true));
+ DartUnaryExpression unary2 = new DartUnaryExpression(Token.SUB, tokenOffset, unary, true);
+ return done(new DartUnaryExpression(Token.SUB, tokenOffset, done(unary2), true));
} else {
beginUnaryExpression();
consume(token);
+ int tokenOffset = ctx.getTokenLocation().getBegin().getPos();
DartExpression unary = parseUnaryExpression();
if (token.isCountOperator()) {
ensureAssignable(unary);
}
- return done(new DartUnaryExpression(token, unary, true));
+ return done(new DartUnaryExpression(token, tokenOffset, unary, true));
}
} else {
return parsePostfixExpression();

Powered by Google App Engine
This is Rietveld 408576698