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 f(generic-covariant-impl self::C::T x) → void
    ;
}
static method g1(self::C<core::num> c) → void
  ;
static method g2(self::C<core::int> c) → void
  ;
static method g3(self::C<core::num> c) → void
  ;
static method main() → dynamic
  ;
