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*>* x) → self::C<self::C::T*>*
    : super core::Object::•()
    ;
}
static method main() → dynamic {
  core::bool* b = false;
  core::List<core::int*>* l1 = <core::int*>[1];
  core::List<core::int*>* l2 = <core::int*>[2];
  self::C<core::int*>* x = new self::C::•<core::int*>(l1);
  self::C<core::int*>* y = new self::C::•<core::int*>(l2);
  self::C<core::int*>* z = new self::C::•<core::int*>(b ?{core::List<core::int*>*} l1 : l2);
}
