Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / tests / gtest-variance-6.cs
1 interface ICovariant<out T> { }
2 interface IContravariant<in T> { }
3
4 delegate ICovariant<U> Cov1<out U> (IContravariant<U> x);
5 delegate ICovariant<U> Cov2<out U> (IContravariant<ICovariant<U>> x);
6 delegate ICovariant<IContravariant<IContravariant<U>>> Cov3<out U> (IContravariant<IContravariant<IContravariant<ICovariant<U>>>> x);
7 delegate ICovariant<int> Cov4<out U> ();
8 delegate IContravariant<int> Cov5<out U> ();
9
10 delegate IContravariant<U[]> Contra5<in U> (U u, ICovariant<U> x);
11 delegate IContravariant<U[]> Contra6<in U> ();
12 delegate IContravariant<U> Contra7<in U> (U u, ICovariant<U> x);
13 delegate IContravariant<ICovariant<U>> Contra8<in U> (U u, ICovariant<U> x);
14
15 interface ITest_1<out T>
16 {
17         ICovariant<T> CovariantHandler (IContravariant<T> x);
18 }
19
20 interface ITest_2<in T>
21 {
22         IContravariant<T> CovariantHandler (ICovariant<T> x);
23 }
24
25 class Program
26 {
27         public static void Main ()
28         {
29         }
30 }