blob: 7574af709a922878e14c8004eb90fad206e3f38f [file] [log] [blame]
class A<X> {}
typedef F<X extends A<X>, Y extends A<Y>> = X Function(Y);
foo1a(F<A<dynamic>, A<Never>> x) {}
foo1b(F x) {}
foo2a<X extends F<A<dynamic>, A<Never>>>() {}
foo2b<X extends F>() {}
class Foo3a<X extends F<A<dynamic>, A<Never>>> {}
class Foo3b<X extends F> {}
F<A<dynamic>, A<Never>> foo4a() => throw 42;
F foo4b() => throw 42;
foo5a({required F<A<dynamic>, A<Never>> x}) {}
foo5b({required F x}) {}
foo6a() {}
foo6b() {}
foo7a([F<A<dynamic>, A<Never>>? x]) {}
foo7b([F? x]) {}
class B<X extends int> {}
bar1(B<num> x) {}
bar2<X extends B<num>>() {}
class Bar3<X extends B<num>> {}
B<num> bar4() => throw 42;
bar5({required B<num> x}) {}
bar6() {}
bar7([B<num>? x]) {}
class Bar8 extends B<dynamic> {}
main() {}