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

class C extends core::Object {
  field core::int field = 0;
  synthetic constructor •() → self::C
    : super core::Object::•()
    ;
  get getter() → core::int
    return 0;
  method function() → core::int
    return 0;
}
static field self::C c = new self::C::•();
static field () → core::int function_ref = self::c.{self::C::function}{() → core::int};
static field core::List<() → core::int> function_ref_list = core::_GrowableList::_literal1<() → core::int>(self::c.{self::C::function}{() → core::int});
static method main() → dynamic {}
