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

class A extends core::Object {
  synthetic constructor •() → self::A
    ;
}
extension type on self::A {
  method method = self::type|method;
  tearoff method = self::type|get#method;
}
static method type|method(lowered final self::A #this) → dynamic
  ;
static method type|get#method(lowered final self::A #this) → () → dynamic
  return () → dynamic => self::type|method(#this);
static method test() → dynamic
  ;
static method main() → dynamic
  ;
