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

class A<T extends core::Object? = dynamic> extends core::Object {
  covariant-by-class field self::A<self::A::T%> f = new self::A::•<self::A::T%>();
  constructor •() → self::A<self::A::T%>
    : super core::Object::•()
    ;
  static factory factory<T extends core::Object? = dynamic>() → self::A<self::A::factory::T%>
    return new self::A::•<self::A::factory::T%>();
  method m() → self::A<self::A::T%>
    return new self::A::•<self::A::T%>();
}
static method main() → dynamic {}
