| Index: pkg/kernel/lib/binary/ast_from_binary.dart
|
| diff --git a/pkg/kernel/lib/binary/ast_from_binary.dart b/pkg/kernel/lib/binary/ast_from_binary.dart
|
| index 100fe9886627918ff9ff771dae1c3443e94e0f66..ea95ae4aea5837e6d81670d0a94c703654defbed 100644
|
| --- a/pkg/kernel/lib/binary/ast_from_binary.dart
|
| +++ b/pkg/kernel/lib/binary/ast_from_binary.dart
|
| @@ -595,7 +595,9 @@ class BinaryBuilder {
|
| int offset = readOffset();
|
| return new StaticGet(readMemberReference())..fileOffset = offset;
|
| case Tag.StaticSet:
|
| - return new StaticSet(readMemberReference(), readExpression());
|
| + int offset = readOffset();
|
| + return new StaticSet(readMemberReference(), readExpression())
|
| + ..fileOffset = offset;
|
| case Tag.MethodInvocation:
|
| int offset = readOffset();
|
| return new MethodInvocation(
|
| @@ -645,7 +647,9 @@ class BinaryBuilder {
|
| return new IsExpression(readExpression(), readDartType())
|
| ..fileOffset = offset;
|
| case Tag.AsExpression:
|
| - return new AsExpression(readExpression(), readDartType());
|
| + int offset = readOffset();
|
| + return new AsExpression(readExpression(), readDartType())
|
| + ..fileOffset = offset;
|
| case Tag.StringLiteral:
|
| return new StringLiteral(readStringReference());
|
| case Tag.SpecializedIntLiteral:
|
| @@ -672,18 +676,21 @@ class BinaryBuilder {
|
| case Tag.ThisExpression:
|
| return new ThisExpression();
|
| case Tag.Rethrow:
|
| - return new Rethrow();
|
| + int offset = readOffset();
|
| + return new Rethrow()..fileOffset = offset;
|
| case Tag.Throw:
|
| int offset = readOffset();
|
| return new Throw(readExpression())..fileOffset = offset;
|
| case Tag.ListLiteral:
|
| + int offset = readOffset();
|
| var typeArgument = readDartType();
|
| return new ListLiteral(readExpressionList(),
|
| - typeArgument: typeArgument, isConst: false);
|
| + typeArgument: typeArgument, isConst: false)..fileOffset = offset;
|
| case Tag.ConstListLiteral:
|
| + int offset = readOffset();
|
| var typeArgument = readDartType();
|
| return new ListLiteral(readExpressionList(),
|
| - typeArgument: typeArgument, isConst: true);
|
| + typeArgument: typeArgument, isConst: true)..fileOffset = offset;
|
| case Tag.MapLiteral:
|
| int offset = readOffset();
|
| var keyType = readDartType();
|
| @@ -761,8 +768,10 @@ class BinaryBuilder {
|
| labelStack.removeLast();
|
| return label;
|
| case Tag.BreakStatement:
|
| + int offset = readOffset();
|
| int index = readUInt();
|
| - return new BreakStatement(labelStack[labelStackBase + index]);
|
| + return new BreakStatement(labelStack[labelStackBase + index])
|
| + ..fileOffset = offset;
|
| case Tag.WhileStatement:
|
| return new WhileStatement(readExpression(), readStatement());
|
| case Tag.DoStatement:
|
| @@ -980,13 +989,16 @@ class BinaryBuilder {
|
|
|
| VariableDeclaration readVariableDeclaration() {
|
| int offset = readOffset();
|
| + int fileEqualsOffset = readOffset();
|
| int flags = readByte();
|
| return new VariableDeclaration(readStringOrNullIfEmpty(),
|
| type: readDartType(),
|
| inferredValue: readOptionalInferredValue(),
|
| initializer: readExpressionOption(),
|
| isFinal: flags & 0x1 != 0,
|
| - isConst: flags & 0x2 != 0)..fileOffset = offset;
|
| + isConst: flags & 0x2 != 0)
|
| + ..fileOffset = offset
|
| + ..fileEqualsOffset = fileEqualsOffset;
|
| }
|
|
|
| int readOffset() {
|
|
|