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>();
}
