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 U extends self::C::T* = dynamic>(self::C::f::U* x) → void
    ;
  method g1<generic-covariant-impl U extends self::C::T* = dynamic>() → void
    ;
}
static method g2(self::C<core::Object*>* c) → void
  ;
static method test() → void
  ;
static method main() → void
  ;
