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

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

  static method foo() → dynamic {}
}
library from "org-dartlang-test:///main.dart" as main {

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

  static method main() → dynamic {
    lib::foo();
  }
}
library from "org-dartlang-test:///nonexisting.dart" as non {
//
// Problems in library:
//
// org-dartlang-test:///lib.dart:1:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
// import 'nonexisting.dart';
//        ^
//

}
