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

class C<T extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::C<self::C::T%>
    ;
  method f1(covariant-by-class core::List<self::C::T%> x) → void
    ;
  method f2(covariant-by-class () → self::C::T% callback) → void
    ;
  method f3(covariant-by-class (self::C::T%) → self::C::T% callback) → void
    ;
  method f4((self::C::T%) → void callback) → void
    ;
}
static method g1(self::C<core::num> c, core::List<core::num> l) → void
  ;
static method g2(self::C<core::num> c, () → core::num callback) → void
  ;
static method g3(self::C<core::num> c, (core::num) → core::num callback) → void
  ;
static method g4(self::C<core::num> c, (core::num) → void callback) → void
  ;
static method main() → dynamic
  ;
