library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

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