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

class A<T extends core::Object> extends core::Object {
  synthetic constructor •() → void
    : super core::Object::•()
    ;
}
class B<T extends core::Object> extends self::A<self::B::T> {
  synthetic constructor •() → void
    : 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>();
}
