library test;
import self as self;
import "dart:core" as core;

class C extends core::Object {
  field core::int field = 0;
  synthetic constructor •() → void
    : 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 field_ref = self::c.{self::C::field};
static field core::int getter_ref = self::c.{self::C::getter};
static field () → core::int function_ref = self::c.{self::C::function};
static field core::List<core::int> field_ref_list = <core::int>[self::c.{self::C::field}];
static field core::List<core::int> getter_ref_list = <core::int>[self::c.{self::C::getter}];
static field core::List<() → core::int> function_ref_list = <() → core::int>[self::c.{self::C::function}];
static method main() → dynamic {}
