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

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