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

typedef F<contravariant T extends core::Object? = dynamic> = (T%) → void;
class C<T extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::C<self::C::T%>
    : super core::Object::•()
    ;
  method f<U extends (self::C::T%) → void>(self::C::f::U x) → void {}
}
static method g(self::C<core::num> c) → void {
  c.{self::C::f}<(core::Object) → void>((core::Object o) → void {}){((core::Object) → void) → void};
}
static method test() → void {
  self::g(new self::C::•<core::int>());
}
static method main() → void {}
