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

class C extends core::Object {
  field core::int field;
  synthetic constructor •() → self::C
    ;
  get getter() → core::int
    ;
  method function() → core::int
    ;
}
static field self::C c;
static field () → core::int function_ref;
static field core::List<() → core::int> function_ref_list;
static method main() → dynamic
  ;
