library test /*isNonNullableByDefault*/;
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 self::B<core::int> b = self::a as{ForNonNullableByDefault} self::B<core::int>;
static method main() → dynamic {
  self::A<core::num> a = new self::B::•<core::int>();
  self::B<core::int> b = a as{ForNonNullableByDefault} self::B<core::int>;
}
