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* t = null;
  constructor _() → self::C<self::C::T*>*
    : super core::Object::•()
    ;
  static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>* {
    dynamic x = new self::C::_<self::C::•::T*>();
    x.t = t;
    return x;
  }
}
static method test() → dynamic {
  dynamic x = self::C::•<dynamic>(42);
  x.t = "hello";
}
static method main() → dynamic {}
