2010-05-31 Jb Evain <jbevain@novell.com>
[mcs.git] / tests / gtest-variance-7.cs
blob3c075bd2e699cbfe06c6dc2c16e05f9c784d80cd
1 // Compiler options: -langversion:future
3 delegate T Covariant<out T> ();
4 delegate void Contra<in T> (T t);
5 delegate TR CoContra<out TR, in T> (T t);
6 delegate void None<T> (T t);
8 delegate Covariant<Contra<Contra<Covariant<Covariant<Covariant<Covariant<Covariant<U>>>>>>>> Test<out U> ();
9 delegate Contra<Covariant<Contra<Contra<Covariant<Covariant<Covariant<Covariant<Covariant<U>>>>>>>>> Test2<in U> ();
10 delegate Contra<Contra<Covariant<Covariant<Covariant<Covariant<Contra<Contra<U>>>>>>>> Test3<out U> ();
11 delegate Contra<Contra<Covariant<Covariant<Contra<Contra<Contra<Contra<U>>>>>>>> Test4<out U> ();
12 delegate Contra<Contra<Covariant<Covariant<Contra<Contra<Contra<U>>>>>>> Test5<in U> ();
13 delegate void Test6<in U> (Covariant<Contra<Contra<Covariant<Covariant<Covariant<Covariant<Covariant<U>>>>>>>> t);
15 delegate void Both<in U, out V> (CoContra<U, V> p);
16 delegate void Both2<in U, out V> (CoContra<U, Contra<U>> p);
17 delegate void Both3<in U, out V> (CoContra<U, Contra<int>> p);
18 delegate void Both4<in U, out V> (Both<V, U> b);
19 delegate void Both5<in U, out V> (Both<V, int> b);
21 class C
23 public static void Main ()