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

Unified Diff: pkg/front_end/lib/src/fasta/builder/scope.dart

Issue 2691523002: Ensure locations are always provided, but don't store them yet. (Closed)
Patch Set: Address comments. Created 3 years, 10 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/builder/scope.dart
diff --git a/pkg/front_end/lib/src/fasta/builder/scope.dart b/pkg/front_end/lib/src/fasta/builder/scope.dart
index 015045775643023ba99a29c30a7ead42ae2fc9e4..10999a7f8abbc674a9f42f63f5c5ac375b956255 100644
--- a/pkg/front_end/lib/src/fasta/builder/scope.dart
+++ b/pkg/front_end/lib/src/fasta/builder/scope.dart
@@ -29,37 +29,44 @@ class Scope {
return new Scope(<String, Builder>{}, this, isModifiable: isModifiable);
}
- Builder lookup(String name) {
+ Builder lookup(String name, int charOffset, Uri fileUri) {
Builder builder = local[name];
if (builder != null) {
- if (builder.next != null) return lookupAmbiguous(name, builder, false);
- return builder.isSetter ? new AccessErrorBuilder(builder) : builder;
+ if (builder.next != null) {
+ return lookupAmbiguous(name, builder, false, charOffset, fileUri);
+ }
+ return builder.isSetter
+ ? new AccessErrorBuilder(builder, charOffset, fileUri)
+ : builder;
} else {
- return parent?.lookup(name);
+ return parent?.lookup(name, charOffset, fileUri);
}
}
- Builder lookupSetter(String name) {
+ Builder lookupSetter(String name, int charOffset, Uri fileUri) {
Builder builder = local[name];
if (builder != null) {
- if (builder.next != null) return lookupAmbiguous(name, builder, true);
+ if (builder.next != null) {
+ return lookupAmbiguous(name, builder, true, charOffset, fileUri);
+ }
if (builder.isField) {
if (builder.isFinal) {
- return new AccessErrorBuilder(builder);
+ return new AccessErrorBuilder(builder, charOffset, fileUri);
} else {
return builder;
}
} else if (builder.isSetter) {
return builder;
} else {
- return new AccessErrorBuilder(builder);
+ return new AccessErrorBuilder(builder, charOffset, fileUri);
}
} else {
- return parent?.lookupSetter(name);
+ return parent?.lookupSetter(name, charOffset, fileUri);
}
}
- Builder lookupAmbiguous(String name, Builder builder, bool setter) {
+ Builder lookupAmbiguous(String name, Builder builder, bool setter,
+ int charOffset, Uri fileUri) {
assert(builder.next != null);
if (builder is MixedAccessor) {
return setter ? builder.setter : builder.getter;
@@ -73,7 +80,7 @@ class Scope {
} else if (current.isSetter && setterBuilder == null) {
setterBuilder = current;
} else {
- return new AmbiguousBuilder(builder);
+ return new AmbiguousBuilder(builder, charOffset, fileUri);
}
current = current.next;
}
@@ -95,7 +102,8 @@ class Scope {
class AccessErrorBuilder extends Builder {
final Builder builder;
- AccessErrorBuilder(this.builder);
+ AccessErrorBuilder(this.builder, int charOffset, Uri fileUri)
+ : super(null, charOffset, fileUri);
Builder get parent => builder;
@@ -127,7 +135,8 @@ class AccessErrorBuilder extends Builder {
class AmbiguousBuilder extends Builder {
final Builder builder;
- AmbiguousBuilder(this.builder);
+ AmbiguousBuilder(this.builder, int charOffset, Uri fileUri)
+ : super(null, charOffset, fileUri);
get target => null;
« no previous file with comments | « pkg/front_end/lib/src/fasta/builder/procedure_builder.dart ('k') | pkg/front_end/lib/src/fasta/builder/type_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698