main = main::main;
library from "org-dartlang-test:///lib1.dart" as lib1 {

  static method x() → dynamic {
    dart.core::print("lib1.x!");
  }
}
library from "org-dartlang-test:///lib2.dart" as lib2 {

  static method x() → dynamic {
    dart.core::print("lib2.x!");
  }
}
library from "org-dartlang-test:///main.dart" as main {
//
// Problems in library:
//
// org-dartlang-test:///main.dart:2:1: Error: 'x' is exported from both 'org-dartlang-test:///lib1.dart' and 'org-dartlang-test:///lib2.dart'.
// export "lib2.dart" show x;
// ^
//
// org-dartlang-test:///main.dart:4:19: Error: Expected ';' after this.
//   print("exports!")
//                   ^
//

  export "org-dartlang-test:///lib1.dart" show x;
  export "org-dartlang-test:///lib2.dart" show x;

  static const field dynamic _exports# = #C1 /* from null */;
  static method main() → dynamic {
    dart.core::print("exports!");
  }
}
constants  {
  #C1 = "{\"x\":\"'x' is exported from both 'org-dartlang-test:///lib1.dart' and 'org-dartlang-test:///lib2.dart'.\"}"
}
