1 // Compare this to gcs0695-*.cs: these are the allowed cases.
8 interface J<X,Y> : I<X>
11 class A<X> : I<X>, I<A<X>>
14 class B<X> : I<B<X>>, I<X>, I<A<X>>
17 class C<X> : I<int>, I<A<X>>
20 class D<X> : I<A<float>>, I<B<X>>
23 class E<X,Y> : J<X,Y>, J<I<X>,I<Y>>
26 class F<X> : J<X,I<X>>, J<X,X>
33 struct KeyValuePair<K,V>
39 interface ITest2<K,V> : ITest<KeyValuePair<K,V>>
42 class MyTest<K,V> : ITest2<K,V>, ITest<KeyValuePair<K,V>>
53 interface I<K> : Z<S<K>> { }
55 class C <K> : I<K>, Z<S<K>> { }