library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

import "org-dartlang-testcase:///issue41498_lib.dart";

class C extends core::Object {
  synthetic constructor •() → self::C
    ;
  static method test() → void
    ;
  method test2() → void
    ;
}
static method test() → dynamic
  ;
static method main() → dynamic
  ;

library opted_out_lib;
import self as self2;
import "dart:core" as core;

typedef LegacyFoo = () →* void;
class C extends core::Object {
  synthetic constructor •() → self2::C*
    ;
  static method test() → void
    ;
  method test2() → void
    ;
}
static method test() → dynamic
  ;
