main = <No Member>;
library from "org-dartlang-test:///lib.dart" as lib {

  import "org-dartlang-test:///libExporter.dart";

  static field dart.core::int libField = 42;
  static method requireStuffFromLibExporter() → void {
    dart.core::print(lib2::fromLibExporter);
  }
}
library from "org-dartlang-test:///libExporter.dart" as lib2 {
additionalExports = (lib::libField,
  lib::requireStuffFromLibExporter,
  lib::libField)

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

  static field dart.core::String fromLibExporter = "hello";
}
library from "org-dartlang-test:///main.dart" as main {

  import "org-dartlang-test:///libExporter.dart";

  static method foo() → void {
    dart.core::int value = lib::libField;
    lib::libField = value.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
  }
}
