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

class Class extends core::Object {
  synthetic constructor •() → self::Class*
    ;
}
extension Extension on self::Class* {
  set setter = self::Extension|set#setter;
}
static field self::Class* c;
static field dynamic missingGetter;
static method Extension|set#setter(final self::Class* #this, core::int* value) → void
  ;
static method main() → dynamic
  ;
