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::•() {
      dart.core::print("Foo!");
    }
  }
}
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::•();
  }
}
