Merge pull request #495 from nicolas-raoul/fix-for-issue2907-with-no-formatting-changes
[mono.git] / mcs / tests / test-156.cs
1 class Internal { }
2
3 public class Public { }
4
5 class X
6 {
7         public class NestedPublic { }
8
9         internal class NestedAssembly { }
10
11         protected internal class NestedFamilyAndAssembly { }
12
13         protected class NestedFamily { }
14
15         private class NestedPrivate { }
16
17         public static void Main () { }
18 }
19
20 public class A : Public { }
21
22 class B : Public { }
23 class C : Internal { }
24
25 class D : X.NestedPublic { }
26 class E : X.NestedAssembly { }
27 class F : X.NestedFamilyAndAssembly { }
28
29 public class Y
30 {
31         public class YA : Public { }
32
33         class YB : Internal { }
34
35         class YC : X.NestedPublic { }
36         class YD : X.NestedAssembly { }
37         class YE : X.NestedFamilyAndAssembly { }
38
39         internal class YF : Internal { }
40
41         internal class YG : X.NestedAssembly { }
42         internal class YH : X.NestedFamilyAndAssembly { }
43
44         internal enum YI { A, B }
45
46         internal void Test (YI yi) { }
47 }
48
49 public class Z
50 {
51         public class P : Y.YA { }
52 }
53
54 class W : X
55 {
56         public class WA : NestedPublic { }
57         public class WB : NestedAssembly { }
58         public class WC : NestedFamilyAndAssembly { }
59         internal class WD : NestedPublic { }
60         internal class WE : NestedFamilyAndAssembly { }
61
62         private class WCA
63         {
64         }
65
66         private class WCB
67         {
68                 public class WCD
69                 {
70                         public class WCE : WCA
71                         {
72                         }
73                 }
74         }
75 }
76
77 class G
78 {
79         public void Test (X x) { }
80
81         private enum Foo { A, B };
82
83         enum Bar { C, D };
84
85         private class I
86         {
87                 public class J
88                 {
89                         public void Test (Foo foo) { }
90                 }
91         }
92 }
93
94 public class H
95 {
96         public void Test (int[] a) { }
97 }
98
99 internal interface L
100 {
101         void Hello (string hello);
102 }
103
104 public class M : L
105 {
106         public void Hello (string hello) { }
107 }