library test;
import self as self;
import "dart:core" as core;

class C<T extends core::Object = dynamic> extends core::Object {
  field self::C::T t = null;
  constructor •() → void
    : 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);
}
