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

class C<T extends core::Object* = dynamic> extends core::Object {
  constructor •(core::List<self::C::T*>* list) → self::C<self::C::T*>*
    : super core::Object::•()
    ;
}
static method main() → dynamic {
  self::C<core::int*>* x = new self::C::•<core::int*>(<core::int*>[123]);
  self::C<core::int*>* y = x;
  self::C<dynamic>* a = new self::C::•<dynamic>(<dynamic>[123]);
  self::C<core::Object*>* b = new self::C::•<core::Object*>(<core::Object*>[123]);
}
