Index: pkg/front_end/test/fasta/ambiguous_export_test.dart |
diff --git a/pkg/front_end/test/fasta/ambiguous_export_test.dart b/pkg/front_end/test/fasta/ambiguous_export_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..872924701a678bc56799fd823ce4b849e42b1971 |
--- /dev/null |
+++ b/pkg/front_end/test/fasta/ambiguous_export_test.dart |
@@ -0,0 +1,41 @@ |
+// Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE.md file. |
+ |
+import 'package:async_helper/async_helper.dart' show asyncTest; |
+ |
+import 'package:expect/expect.dart' show Expect; |
+ |
+import 'package:front_end/src/fasta/builder/builder.dart' |
+ show InvalidTypeBuilder; |
+ |
+import 'package:front_end/src/fasta/compiler_context.dart' show CompilerContext; |
+ |
+import 'package:front_end/src/fasta/dill/dill_library_builder.dart' |
+ show DillLibraryBuilder; |
+ |
+import 'package:front_end/src/fasta/dill/dill_target.dart' show DillTarget; |
+ |
+import 'package:kernel/ast.dart' |
+ show Field, Library, Name, Program, StringLiteral; |
+ |
+main() async { |
+ await asyncTest(() async { |
+ Library library = new Library(Uri.parse("org.dartlang.fasta:library")); |
+ Field field = new Field(new Name("_exports#", library), |
+ initializer: |
+ new StringLiteral("[[null,\"main\",\"Problem with main\"]]")); |
+ library.addMember(field); |
+ Program program = new Program(libraries: <Library>[library]); |
+ await CompilerContext.runWithDefaultOptions((CompilerContext c) async { |
+ DillTarget target = |
+ new DillTarget(c.options.ticker, null, c.options.target); |
+ target.loader.appendLibraries(program); |
+ DillLibraryBuilder builder = target.loader.read(library.importUri, -1); |
+ await target.loader.buildOutline(builder); |
+ builder.finalizeExports(); |
+ var mainExport = builder.exportScope.local["main"]; |
+ Expect.isTrue(mainExport is InvalidTypeBuilder); |
+ }); |
+ }); |
+} |