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

class C<T extends core::num = core::num> extends core::Object {
  final field self::C::T x;
  const constructor •(self::C::T x) → void
    : self::C::x = x, super core::Object::•()
    ;
}
class D<T extends core::num = core::num> extends core::Object {
  const constructor •() → void
    : super core::Object::•()
    ;
}
static method main() → void {
  const self::C<core::int> c = const self::C::•<core::int>(0);
  self::C<core::int> c2 = c;
  const self::D<core::int> d = const self::D::•<core::int>();
}
