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::•()
    ;
  method foo() → dynamic {}
}
static field self::A<core::num> a = new self::B::•<core::int>();
static field dynamic b = self::a as self::B<core::int>;
static method main() → dynamic {
  self::A<core::num> a = new self::B::•<core::int>();
  dynamic b = a as self::B<core::int>;
}
