library test;
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(generic-covariant-impl 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 generic-covariant-impl core::int x) → void
    ;
}
static method g1(dynamic d) → void
  ;
static method g2(dynamic d) → void
  ;
static method test() → void
  ;
static method main() → dynamic
  ;
