Merge branch 'master'
[mono.git] / mono / tests / verifier / valid_type_constraint_satisfy_reference_contraint.cs
1 using System;
2
3 public class Control {}
4 public class UserControl : Control {}
5
6 namespace test
7 {
8     public class MainPage : UserControl
9     {
10         public static void Main ()
11         {
12             var more = new MoreConstrained<MainPage>();
13             more.test(new MainPage ());
14         }
15     }
16
17     public class MoreConstrained<T> where T : Control
18     {
19         public void test(T param)
20         {
21             Console.WriteLine("More " + typeof(T) + " " + param);
22             var x = new LessConstrained<T>();
23             x.test<T>();
24         }
25     }
26
27     public class LessConstrained<T> where T : class
28     {
29         public void test<T2>()
30         {
31             Console.WriteLine("Less " + typeof(T2));
32         }
33     }
34
35 }