Index: pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
index 75b99bcc0c1be66cfd85b38d2a367837b12875da..250043961a43f95aff01e636da85af584e76a4d8 100644 |
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart |
@@ -811,7 +811,8 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
debugEvent("endLiteralString"); |
if (interpolationCount == 0) { |
Token token = pop(); |
- push(new StringLiteral(unescapeString(token.lexeme))); |
+ push(new StringLiteral(unescapeString(token.lexeme)) |
+ ..fileOffset = token.charOffset); |
} else { |
List parts = popList(1 + interpolationCount * 2); |
Token first = parts.first; |
@@ -865,7 +866,8 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
@override |
void handleLiteralInt(Token token) { |
debugEvent("LiteralInt"); |
- push(new IntLiteral(int.parse(token.lexeme))); |
+ push( |
+ new IntLiteral(int.parse(token.lexeme))..fileOffset = token.charOffset); |
} |
@override |
@@ -1104,19 +1106,19 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
debugEvent("LiteralBool"); |
bool value = optional("true", token); |
assert(value || optional("false", token)); |
- push(new BoolLiteral(value)); |
+ push(new BoolLiteral(value)..fileOffset = token.charOffset); |
} |
@override |
void handleLiteralDouble(Token token) { |
debugEvent("LiteralDouble"); |
- push(new DoubleLiteral(double.parse(token.lexeme))); |
+ push(new DoubleLiteral(double.parse(token.lexeme))..fileOffset = token.charOffset); |
} |
@override |
void handleLiteralNull(Token token) { |
debugEvent("LiteralNull"); |
- push(new NullLiteral()); |
+ push(new NullLiteral()..fileOffset = token.charOffset); |
} |
@override |
@@ -2086,8 +2088,12 @@ class BodyBuilder extends ScopeListener<JumpTarget> implements BuilderHelper { |
exitLocalScope(); |
List<Label> labels = pop(); |
List<Expression> expressions = pop(); |
- push(new SwitchCase(expressions, block, isDefault: defaultKeyword != null) |
- ..fileOffset = firstToken.charOffset); |
+ List<int> expressionsOffsets = <int>[]; |
Kevin Millikin (Google)
2017/03/20 12:29:47
expressionsOffsets ==> expressionOffsets
jensj
2017/03/21 10:06:19
Done.
|
+ for (Expression expression in expressions) { |
+ expressionsOffsets.add(expression.fileOffset); |
+ } |
+ push(new SwitchCase(expressions, expressionsOffsets, block, |
+ isDefault: defaultKeyword != null)..fileOffset = firstToken.charOffset); |
push(labels); |
} |