library test;
import self as self;
import "dart:core" as core;

class C<T extends core::Object* = dynamic> extends core::Object {
  generic-covariant-impl field self::C::T* y;
  synthetic constructor •() → self::C<self::C::T*>*
    ;
  set x(generic-covariant-impl self::C::T* t) → void
    ;
}
class D extends core::Object implements self::C<core::num*> {
  generic-covariant-impl field core::num* x;
  generic-covariant-impl field core::num* y;
  synthetic constructor •() → self::D*
    ;
}
class E extends core::Object implements self::C<core::num*> {
  synthetic constructor •() → self::E*
    ;
  set x(generic-covariant-impl core::num* t) → void
    ;
  get y() → core::num*
    ;
  set y(generic-covariant-impl core::num* t) → void
    ;
}
static method main() → void
  ;
