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 named<T extends core::Object = dynamic>(self::C::named::T t) → self::C<self::C::named::T> {
    dynamic x = new self::C::•<self::C::named::T>();
    x.t = t;
    return x;
  }
}
static method main() → dynamic {
  dynamic x = self::C::named<dynamic>(42);
}
