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

class C<T extends core::Object = dynamic> extends core::Object {
  generic-covariant-impl field self::C::T t;
  constructor •(self::C::T t) → self::C<self::C::T>
    : self::C::t = t, super core::Object::•()
    ;
}
static method test() → 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);
  self::C<core::num> c_num2 = let final dynamic #t1 = new self::C::•<dynamic>(456) in let final dynamic #t2 = #t1.t = 1.0 in #t1;
  dynamic c_dynamic = new self::C::•<dynamic>(42);
  x.t = "hello";
}
static method main() → dynamic {}
