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;
  constructor •(self::C::T t) → void
    : self::C::t = t, super core::Object::•()
    ;
}
static method main() → dynamic {
  dynamic x = new self::C::•<dynamic>(42);
  core::num y;
  self::C<core::int> c_int = new self::C::•<dynamic>(y);
  self::C<core::num> c_num = new self::C::•<dynamic>(123);
  dynamic c_dynamic = new self::C::•<dynamic>(42);
}
