Index: pkg/front_end/lib/src/fasta/source/outline_builder.dart |
diff --git a/pkg/front_end/lib/src/fasta/source/outline_builder.dart b/pkg/front_end/lib/src/fasta/source/outline_builder.dart |
index bd2a56981c0921ad635d678c697f7522e315d2f2..ace87f133289beba788357ece905acc95b8fa872 100644 |
--- a/pkg/front_end/lib/src/fasta/source/outline_builder.dart |
+++ b/pkg/front_end/lib/src/fasta/source/outline_builder.dart |
@@ -627,22 +627,22 @@ class OutlineBuilder extends UnhandledListener { |
@override |
void endTopLevelFields(int count, Token beginToken, Token endToken) { |
debugEvent("endTopLevelFields"); |
- List namesOffsetsAndInitializers = popList(count * 4); |
+ List fieldsInfo = popList(count * 4); |
TypeBuilder type = pop(); |
int modifiers = Modifier.validate(pop()); |
List<MetadataBuilder> metadata = pop(); |
- library.addFields(metadata, modifiers, type, namesOffsetsAndInitializers); |
+ library.addFields(metadata, modifiers, type, fieldsInfo); |
checkEmpty(beginToken.charOffset); |
} |
@override |
void endFields(int count, Token beginToken, Token endToken) { |
debugEvent("Fields"); |
- List namesOffsetsAndInitializers = popList(count * 4); |
+ List fieldsInfo = popList(count * 4); |
TypeBuilder type = pop(); |
int modifiers = Modifier.validate(pop()); |
List<MetadataBuilder> metadata = pop(); |
- library.addFields(metadata, modifiers, type, namesOffsetsAndInitializers); |
+ library.addFields(metadata, modifiers, type, fieldsInfo); |
} |
@override |
@@ -724,8 +724,14 @@ class OutlineBuilder extends UnhandledListener { |
@override |
void endFieldInitializer(Token assignmentOperator, Token token) { |
debugEvent("FieldInitializer"); |
+ Token beforeLast = assignmentOperator.next; |
+ Token next = beforeLast.next; |
+ while (next != token && !next.isEof) { |
+ beforeLast = next; |
+ next = next.next; |
+ } |
push(assignmentOperator.next); |
- push(token); |
+ push(beforeLast); |
Johnni Winther
2017/06/06 10:35:08
Document why you need the token before [token].
ahe
2017/06/06 15:08:24
Done.
|
} |
@override |