main = main::main;
library from "org-dartlang-test:///lib.dart" as lib {
//
// Problems in library:
//
// org-dartlang-test:///lib.dart:3:18: Error: Factory bodies can't use 'async', 'async*', or 'sync*'.
//   factory C.e4() async = C;
//                  ^^^^^
//

  class C extends dart.core::Object {
    static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
    constructor •() → lib::C
      : super dart.core::Object::•()
      ;
    static factory e4() → lib::C
      return new lib::C::•();
  }
}
library from "org-dartlang-test:///main.dart" as main {

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

  static method main() → void {
    lib::C c = new lib::C::•();
  }
}
constants  {
  #C1 = constructor-tearoff lib::C::e4
}
