Merge pull request #487 from mayerwin/patch-1
[mono.git] / mcs / tests / gtest-359.cs
1 class BaseGeneric<T>
2 {
3         public class InnerDerived
4         {
5                 public InnerDerived (T t)
6                 {
7                 }
8         }
9         
10         public class GenericInnerDerived<U>
11         {
12                 public GenericInnerDerived (T t, U u)
13                 {
14                 }
15         }
16 }
17
18 class BaseConcrete : BaseGeneric<string>
19 {
20 }
21
22 class Concrete_A : BaseGeneric<int>
23 {
24 }
25
26 class Concrete_B : BaseConcrete
27 {
28         InnerDerived foo1;
29 }
30
31 class BaseGeneric_2<T, U>
32 {
33         public class InnerDerived
34         {
35                 public InnerDerived (T t, U u)
36                 {
37                 }
38         }
39 }
40
41 class BaseGeneric_1<T> : BaseGeneric_2<T, string>
42 {
43 }
44
45 class Concrete_2 : BaseGeneric_1<bool>
46 {
47 }
48
49
50 class Program
51 {
52     public static void Main ()
53     {
54                 new Concrete_B.InnerDerived ("abc");
55                 new Concrete_A.InnerDerived (11);
56                 new Concrete_A.GenericInnerDerived<int> (1, 2);
57                 new Concrete_2.InnerDerived (false, "bb");
58     }
59 }