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

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