Index: pkg/front_end/lib/src/fasta/builder/builder.dart |
diff --git a/pkg/front_end/lib/src/fasta/builder/builder.dart b/pkg/front_end/lib/src/fasta/builder/builder.dart |
index 1ac63cf5ad2111dfa2a1705e8a1916720fdddf83..26ba0acc74e8c1ccfd2d9245c599b0c894d5670e 100644 |
--- a/pkg/front_end/lib/src/fasta/builder/builder.dart |
+++ b/pkg/front_end/lib/src/fasta/builder/builder.dart |
@@ -6,8 +6,6 @@ library fasta.builder; |
import '../errors.dart' show internalError; |
-import '../messages.dart' show nit; |
- |
export 'class_builder.dart' show ClassBuilder; |
export 'field_builder.dart' show FieldBuilder; |
@@ -62,8 +60,6 @@ export 'function_type_builder.dart' show FunctionTypeBuilder; |
import 'library_builder.dart' show LibraryBuilder; |
-import 'invalid_type_builder.dart' show InvalidTypeBuilder; |
- |
abstract class Builder { |
/// Used when multiple things with the same name are declared within the same |
/// parent. Only used for declarations, not for scopes. |
@@ -94,54 +90,6 @@ abstract class Builder { |
/// return the number of constructors resolved. |
int resolveConstructors(covariant Builder parent) => 0; |
- /// This builder and [other] has been imported into [library] using [name]. |
- /// |
- /// This method handles this case according to the Dart language |
- /// specification. |
- Builder combineAmbiguousImport( |
- String name, Builder other, LibraryBuilder library) { |
- if (other == this) return this; |
- if (other is InvalidTypeBuilder) return other; |
- bool isLocal = false; |
- Builder preferred; |
- Builder hidden; |
- if (library.members[name] == this) { |
- isLocal = true; |
- preferred = this; |
- hidden = other; |
- } else if (getUri(other)?.scheme == "dart" && |
- getUri(this)?.scheme != "dart") { |
- preferred = this; |
- hidden = other; |
- } else if (getUri(this)?.scheme == "dart" && |
- getUri(other)?.scheme != "dart") { |
- preferred = other; |
- hidden = this; |
- } else { |
- nit( |
- library.fileUri, |
- -1, |
- "'$name' is imported from both " |
- "'${getUri(this)}' and '${getUri(other)}'."); |
- return library.buildAmbiguousBuilder(name, this, other, charOffset); |
- } |
- if (isLocal) { |
- nit( |
- library.fileUri, |
- -1, |
- "Local definition of '$name' hides imported " |
- "version from '${getUri(other)}'."); |
- } else { |
- nit( |
- library.fileUri, |
- -1, |
- "Import of '$name' " |
- "(from '${getUri(preferred)}') hides imported version from " |
- "'${getUri(hidden)}'."); |
- } |
- return preferred; |
- } |
- |
Builder get parent => null; |
bool get isFinal => false; |
@@ -178,12 +126,12 @@ abstract class Builder { |
String get fullNameForErrors; |
- static Uri getUri(Builder builder) { |
- if (builder == null) return internalError("Builder is null."); |
- while (builder != null) { |
+ Uri computeLibraryUri() { |
+ Builder builder = this; |
+ do { |
if (builder is LibraryBuilder) return builder.uri; |
builder = builder.parent; |
- } |
+ } while (builder != null); |
return internalError("No library parent."); |
} |
} |