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

class A<T extends core::Object* = dynamic> extends core::Object {
  synthetic constructor •() → self::A<self::A::T*>*
    : super core::Object::•()
    ;
}
class B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
  synthetic constructor •() → self::B<self::B::T*>*
    : super self::A::•()
    ;
}
static method main() → dynamic {
  core::num* x;
  core::int* x1 = x = 1;
  core::double* x2 = x = 1.0;
  self::A<core::int*>* y;
  self::A<core::int*>* y1 = y = new self::A::•<core::int*>();
  self::B<core::int*>* y2 = y = new self::B::•<core::int*>();
}
