Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(63)

Unified Diff: pkg/front_end/lib/src/fasta/source/source_library_builder.dart

Issue 2916333002: Setup correct scope for initializers and complain about fields initialized more than once. (Closed)
Patch Set: More typos. Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 30932735a13c6fb4d83a7ec703202001163f2b13..24b8c29c606c86215731918157a930752e40147a 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
@@ -192,18 +192,14 @@ abstract class SourceLibraryBuilder<T extends TypeBuilder, R>
String name, int charOffset, Token initializer);
void addFields(List<MetadataBuilder> metadata, int modifiers, T type,
- List<Object> namesOffsetsAndInitializers) {
- for (int i = 0; i < namesOffsetsAndInitializers.length; i += 4) {
- String name = namesOffsetsAndInitializers[i];
- int charOffset = namesOffsetsAndInitializers[i + 1];
- Token initializer;
- if (type == null) {
- initializer = namesOffsetsAndInitializers[i + 2];
- Token afterInitializer = namesOffsetsAndInitializers[i + 3];
- // TODO(paulberry): figure out a way to do this without using
- // Token.previous.
- afterInitializer?.previous
- ?.setNext(new Token.eof(afterInitializer.offset));
+ List<Object> fieldsInfo) {
+ for (int i = 0; i < fieldsInfo.length; i += 4) {
+ String name = fieldsInfo[i];
+ int charOffset = fieldsInfo[i + 1];
+ Token initializer = fieldsInfo[i + 2];
+ if (initializer != null) {
+ Token beforeLast = fieldsInfo[i + 3];
+ beforeLast.setNext(new Token.eof(beforeLast.next.offset));
}
addField(metadata, modifiers, type, name, charOffset, initializer);
}
« no previous file with comments | « pkg/front_end/lib/src/fasta/source/outline_builder.dart ('k') | pkg/front_end/lib/src/fasta/source/stack_listener.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698