blob: 7aa61bed8cde227a366ea3397eb5d17560dc3531 [file] [log] [blame]
class A<X> {}
class B<X, Y> {}
class C<X, Y> {}
class D<X extends A<X>, Y extends A<Y>> {}
D d = throw '';
class E<W extends B<W, X>, X extends C<W, X>, Y extends B<Y, Z>,
Z extends C<Y, Z>> {}
E e = throw '';
class F<V extends num, W extends B<W, X>, X extends C<W, X>, Y extends B<W, X>,
Z extends C<Y, Z>> {}
F f = throw '';
class G<V extends num, W extends B<V, X>, X extends C<W, V>, Y extends B<W, X>,
Z extends C<Y, Z>> {}
G g = throw '';
class H<S extends A<S>, T extends B<T, U>, U extends C<T, U>, V extends A<V>,
W extends S, X extends T, Y extends U, Z extends V> {}
H h = throw '';
class I<T extends U, U extends Y, V extends Function(W), W extends Function(X),
X extends Function(V), Y extends Z, Z extends T> {}
I i = throw '';
class J<
S extends T Function(U),
T extends U Function(S),
U extends S Function(T),
V extends W,
W extends X,
X extends Y Function(V),
Y extends Z,
Z extends X> {}
J j = throw '';
main() {}