library test;
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
  ;
