library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

import "dart:async";

class B<Y extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::B<self::B::Y%>
    ;
  method bar(covariant-by-class FutureOr<self::B::Y%>y) → dynamic
    ;
}
class A<X extends core::Object? = dynamic> extends core::Object {
  covariant-by-class final field self::B<self::A::X%> b;
  synthetic constructor •() → self::A<self::A::X%>
    ;
  method foo([covariant-by-class FutureOr<self::A::X%>? x = null]) → dynamic
    ;
}
class C<T extends core::Object? = dynamic> extends core::Object {
  synthetic constructor •() → self::C<self::C::T%>
    ;
  method baz<covariant-by-class X extends FutureOr<self::C::T%>>(covariant-by-class FutureOr<self::C::T%>x) → FutureOr<self::C::T%>
    ;
}
class D<T extends core::Object? = dynamic> extends self::C<self::D::T%> {
  synthetic constructor •() → self::D<self::D::T%>
    ;
  method baz<covariant-by-class X extends FutureOr<self::D::T%>>(covariant-by-class FutureOr<self::D::T%>x) → FutureOr<self::D::T%>
    ;
}
static method main() → dynamic
  ;
