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 self::C::T% x) → void
    ;
  method f2(core::int x) → void
    ;
}
class D extends self::C<core::num> {
  synthetic constructor •() → self::D
    ;
  method f1(covariant-by-declaration covariant-by-class core::int x) → void
    ;
}
static method g1(dynamic d) → void
  ;
static method g2(dynamic d) → void
  ;
static method test() → void
  ;
static method main() → dynamic
  ;
