Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Safar <marek.safar@gmail.com>2009-05-29 23:44:21 +0400
committerMarek Safar <marek.safar@gmail.com>2009-05-29 23:44:21 +0400
commit8e2c0158473d1b82d3247296454a086642c05bb6 (patch)
tree6e30320e0f34a85d66a99f544ef3e958bff8b7b2 /mcs/tests/gtest-variance-6.cs
parentcbf32032f2262ede592d3701c09c9181e518ef61 (diff)
New tests.
svn path=/trunk/mcs/; revision=135080
Diffstat (limited to 'mcs/tests/gtest-variance-6.cs')
-rw-r--r--mcs/tests/gtest-variance-6.cs32
1 files changed, 32 insertions, 0 deletions
diff --git a/mcs/tests/gtest-variance-6.cs b/mcs/tests/gtest-variance-6.cs
new file mode 100644
index 00000000000..d153f00720c
--- /dev/null
+++ b/mcs/tests/gtest-variance-6.cs
@@ -0,0 +1,32 @@
+// Compiler options: -langversion:future
+
+interface ICovariant<out T> { }
+interface IContravariant<in T> { }
+
+delegate ICovariant<U> Cov1<out U> (IContravariant<U> x);
+delegate ICovariant<U> Cov2<out U> (IContravariant<ICovariant<U>> x);
+delegate ICovariant<IContravariant<IContravariant<U>>> Cov3<out U> (IContravariant<IContravariant<IContravariant<ICovariant<U>>>> x);
+delegate ICovariant<int> Cov4<out U> ();
+delegate IContravariant<int> Cov5<out U> ();
+
+delegate IContravariant<U[]> Contra5<in U> (U u, ICovariant<U> x);
+delegate IContravariant<U[]> Contra6<in U> ();
+delegate IContravariant<U> Contra7<in U> (U u, ICovariant<U> x);
+delegate IContravariant<ICovariant<U>> Contra8<in U> (U u, ICovariant<U> x);
+
+interface ITest_1<out T>
+{
+ ICovariant<T> CovariantHandler (IContravariant<T> x);
+}
+
+interface ITest_2<in T>
+{
+ IContravariant<T> CovariantHandler (ICovariant<T> x);
+}
+
+class Program
+{
+ static void Main ()
+ {
+ }
+}