// @dart = 2.9
class B<X, Y> {}

class C<X, Y> {}

class D<X extends B<X, Y>, Y extends C<X, Y>> {}

D d;

class E<X extends B<X, Y>, Y extends X Function()> {}

E e;

class F<X extends X Function()> {}

F f;
main() {}
