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

typedef F<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
class C extends core::Object {
  synthetic constructor •() → self::C
    ;
  method f(core::num x) → void
    ;
}
class D extends self::C {
  synthetic constructor •() → self::D
    ;
  method f(covariant-by-declaration core::int x) → void
    ;
}
class E extends self::D {
  synthetic constructor •() → self::E
    ;
  method f(covariant-by-declaration core::int x) → void
    ;
}
static method g1(self::C c) → void
  ;
static method g2(self::C c) → (core::num) → dynamic
  ;
static method test() → dynamic
  ;
static method main() → dynamic
  ;
