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 {}
