Chromium Code Reviews| Index: pkg/front_end/lib/src/fasta/source/source_library_builder.dart |
| diff --git a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart |
| index 984f1f600e5f6dcb7c2135f54fef13f227bce84f..06b798baa5cd545be6de5f2d1fe3b82b2c24126b 100644 |
| --- a/pkg/front_end/lib/src/fasta/source/source_library_builder.dart |
| +++ b/pkg/front_end/lib/src/fasta/source/source_library_builder.dart |
| @@ -70,6 +70,8 @@ abstract class SourceLibraryBuilder<T extends TypeBuilder, R> |
| /// for example, [addClass] is called. |
| DeclarationBuilder<T> currentDeclaration; |
| + bool canAddImplementationBuilders = false; |
|
karlklose
2017/04/03 06:48:14
Could you add a comment here and/or to addImplemen
ahe
2017/04/04 09:46:44
Done.
|
| + |
| SourceLibraryBuilder(this.loader, Uri fileUri) |
| : fileUri = fileUri, |
| super(fileUri) { |
| @@ -303,6 +305,7 @@ abstract class SourceLibraryBuilder<T extends TypeBuilder, R> |
| R build() { |
| assert(implementationBuilders.isEmpty); |
| + canAddImplementationBuilders = true; |
| forEach((String name, Builder builder) { |
| do { |
| buildBuilder(builder); |
| @@ -316,10 +319,12 @@ abstract class SourceLibraryBuilder<T extends TypeBuilder, R> |
| addBuilder(name, builder, charOffset); |
| buildBuilder(builder); |
| } |
| + canAddImplementationBuilders = false; |
| return null; |
| } |
| void addImplementationBuilder(String name, Builder builder, int charOffset) { |
| + assert(canAddImplementationBuilders, "$uri"); |
| implementationBuilders.add([name, builder, charOffset]); |
| } |