| Index: pkg/front_end/lib/src/fasta/builder/library_builder.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/builder/library_builder.dart b/pkg/front_end/lib/src/fasta/builder/library_builder.dart
|
| index efd77e5ed09bd5163be43e75e380fbb7566bfff5..e3067aa8ccbf980457e61dbfc39343eb82734d3b 100644
|
| --- a/pkg/front_end/lib/src/fasta/builder/library_builder.dart
|
| +++ b/pkg/front_end/lib/src/fasta/builder/library_builder.dart
|
| @@ -19,8 +19,9 @@ import '../util/relativize.dart' show relativizeUri;
|
| import 'builder.dart'
|
| show
|
| Builder,
|
| - DynamicTypeBuilder,
|
| ClassBuilder,
|
| + DynamicTypeBuilder,
|
| + PrefixBuilder,
|
| Scope,
|
| ScopeBuilder,
|
| TypeBuilder,
|
| @@ -88,7 +89,24 @@ abstract class LibraryBuilder<T extends TypeBuilder, R> extends Builder {
|
| }
|
| }
|
|
|
| - bool addToExportScope(String name, Builder member);
|
| + /// Returns true if the export scope was modified.
|
| + bool addToExportScope(String name, Builder member) {
|
| + if (name.startsWith("_")) return false;
|
| + if (member is PrefixBuilder) return false;
|
| + Map<String, Builder> map =
|
| + member.isSetter ? exports.setters : exports.local;
|
| + Builder existing = map[name];
|
| + if (existing == member) return false;
|
| + if (existing != null) {
|
| + Builder result =
|
| + buildAmbiguousBuilder(name, existing, member, -1, isExport: true);
|
| + map[name] = result;
|
| + return result != existing;
|
| + } else {
|
| + map[name] = member;
|
| + }
|
| + return true;
|
| + }
|
|
|
| void addToScope(String name, Builder member, int charOffset, bool isImport);
|
|
|
|
|