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

class Class1 extends core::Object {
  synthetic constructor •() → self::Class1*
    ;
}
extension Extension1 on self::Class1* {
  static method staticMethod = self::Extension1|staticMethod;
  static get staticProperty = get self::Extension1|staticProperty;
  static field staticField = self::Extension1|staticField;
  static set staticProperty = set self::Extension1|staticProperty;
}
static field core::int* Extension1|staticField;
static method Extension1|staticMethod() → dynamic
  ;
static get Extension1|staticProperty() → dynamic
  ;
static set Extension1|staticProperty(core::int* value) → void
  ;
static method main() → dynamic
  ;
