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

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