| 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 949470651115955d5c1d2cc4301d7c00647dc06d..a4d4a941efecb06d591a67e197507975cf2e9fc3 100644
|
| --- a/pkg/kernel/lib/binary/ast_from_binary.dart
|
| +++ b/pkg/kernel/lib/binary/ast_from_binary.dart
|
| @@ -689,8 +689,9 @@ class BinaryBuilder {
|
| return new StaticGet.byReference(readMemberReference())
|
| ..fileOffset = offset;
|
| case Tag.StaticSet:
|
| + int offset = readOffset();
|
| return new StaticSet.byReference(
|
| - readMemberReference(), readExpression());
|
| + readMemberReference(), readExpression())..fileOffset = offset;
|
| case Tag.MethodInvocation:
|
| int offset = readOffset();
|
| return new MethodInvocation.byReference(
|
| @@ -744,7 +745,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:
|
| @@ -771,18 +774,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();
|
| @@ -860,8 +866,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:
|
| @@ -1081,13 +1089,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() {
|
|
|