Chromium Code Reviews| 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); |
| } |