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

typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
typedef G<contravariant T extends core::Object? = dynamic> = () → (T%) → void;
class C<T extends core::Object? = dynamic> extends core::Object {
  field (self::C::T%) → void _x;
  constructor •((self::C::T%) → void _x) → self::C<self::C::T%>
    ;
  method f() → (self::C::T%) → void
    ;
}
static method g(self::C<core::num> c) → () → (core::num) → void
  ;
static method h(core::int i) → void
  ;
static method test() → void
  ;
static method main() → void
  ;
