main = main::main;
library from "org-dartlang-test:///lib1.dart" as lib1 {
additionalExports = (lib2::Bar)

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

  class Foo extends dart.core::Object {
    constructor •() → lib1::Foo
      : super dart.core::Object::•() {}
  }
}
library from "org-dartlang-test:///lib2.dart" as lib2 {

  class Bar extends dart.core::Object {
    constructor •() → lib2::Bar
      : super dart.core::Object::•() {}
  }
}
library from "org-dartlang-test:///main.dart" as main {

  import "org-dartlang-test:///lib2.dart" show Bar;
  import "org-dartlang-test:///lib1.dart" show Bar;

  static method main() → dynamic {
    lib2::Bar bar = new lib2::Bar::•();
  }
}
