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