| Never never() => throw "Never"; | |
| class A<X extends Object, Y extends Object?> { | |
| X foo() => never(); | |
| X? bar() => null; | |
| Y baz() => never(); | |
| } | |
| class B<X extends List<Y>, Y extends Object?> { | |
| foo(X x, Y y) {} | |
| } | |
| class C<X extends List<Y>?, Y extends List<X>?> { | |
| foo(X x, Y y) {} | |
| } | |
| class D<X extends Y, Y extends Z, Z> { | |
| foo(X x, Y y, Z z) {} | |
| } | |
| main() {} |