| 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 8c940f69fe5586c80a9aab09cc9354c5f8db56a9..8bb3ad2ceca5f360deaa923cbcf1a2ba8b07d1be 100644
|
| --- a/pkg/kernel/lib/binary/ast_from_binary.dart
|
| +++ b/pkg/kernel/lib/binary/ast_from_binary.dart
|
| @@ -187,8 +187,7 @@ class BinaryBuilder {
|
| readLibrary();
|
| }
|
| var mainMethod = readMemberReference(allowNull: true);
|
| - return new Program(importTable, uriToSource)
|
| - ..mainMethod = mainMethod;
|
| + return new Program(importTable, uriToSource)..mainMethod = mainMethod;
|
| }
|
|
|
| Map<String, Source> readUriToSource() {
|
| @@ -575,7 +574,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(
|
| @@ -625,7 +626,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:
|
| @@ -657,13 +660,15 @@ class BinaryBuilder {
|
| 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();
|
| @@ -741,8 +746,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:
|
| @@ -960,13 +967,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() {
|
|
|