1
1
unsafe class C : System . Exception
2
2
{
3
- void M1 (
3
+ void // $ TypeMention=System.Void
4
+ M1 (
4
5
C c1 , // $ TypeMention=C
5
6
C [ ] c2
6
7
)
@@ -18,17 +19,51 @@ C[] c2
18
19
}
19
20
}
20
21
21
- void M2 ( delegate * < int , void > f , int * x ) { }
22
+ void // $ TypeMention=System.Void
23
+ M2 ( delegate * < int , void > f , int * x )
24
+ { }
22
25
} // $ Class=C
23
26
24
27
class C2 < T >
25
28
{
26
- C2 <
29
+ C2 < // $ TypeMention=C2`1
27
30
C // $ TypeMention=C
28
- > // $ TypeMention=C2`1
31
+ > // $ TypeMention=C2<C>
29
32
M ( ) => null ;
30
33
31
- void M2 ( int ? i ) { }
34
+ void // $ TypeMention=System.Void
35
+ M2 ( int ? i )
36
+ { }
37
+
38
+ class C2Nested
39
+ {
40
+ } // $ Class=C2`1+C2Nested
41
+
42
+ C2 < // $ TypeMention=C2`1
43
+ C // $ TypeMention=C
44
+ > . // $ TypeMention=C2<C>
45
+ C2Nested // $ TypeMention=C2<C>+C2Nested
46
+ M3 ( ) => null ;
47
+
48
+ C2 < // $ TypeMention=C2`1
49
+ C2 < // $ TypeMention=C2`1
50
+ C // $ TypeMention=C
51
+ > // $ TypeMention=C2<C>
52
+ > // $ TypeMention=C2<C2<C>>
53
+ M4 ( ) => null ;
54
+
55
+ class C2Nested < T1 , T2 >
56
+ {
57
+ } // $ Class=C2`1+C2Nested`2
58
+
59
+ C2 < // $ TypeMention=C2`1
60
+ C // $ TypeMention=C
61
+ > . // $ TypeMention=C2<C>
62
+ C2Nested < // $ TypeMention=C2<C>+C2Nested`2
63
+ int , // $ TypeMention=System.Int32
64
+ string // $ TypeMention=System.String
65
+ > // $ TypeMention=C2<C>+C2Nested<System.Int32,System.String>
66
+ M5 ( ) => null ;
32
67
} // $ Class=C2`1
33
68
34
69
namespace N1
@@ -37,21 +72,39 @@ class C3
37
72
{
38
73
class C4 { } // $ Class=N1.C3+C4
39
74
40
- void M (
75
+ void // $ TypeMention=System.Void
76
+ M (
41
77
N1 . C3 p1 , // $ TypeMention=N1.C3
42
- N1 . C3 . C4 p2 , // $ TypeMention=N1.C3+C4
43
- C3 . C4 p3 // $ TypeMention=N1.C3+C4
78
+ N1 . C3 . // $ TypeMention=N1.C3
79
+ C4 p2 , // $ TypeMention=N1.C3+C4
80
+ C3 . // $ TypeMention=N1.C3
81
+ C4 p3 // $ TypeMention=N1.C3+C4
44
82
)
45
83
{ }
46
84
47
- void M2 ( global ::System . Int32 i ) { }
85
+ void // $ TypeMention=System.Void
86
+ M2 ( global ::System . Int32 i ) // $ TypeMention=System.Int32
87
+ { }
48
88
49
- void M3 ( ref int i ) // not a ref type
89
+ void // $ TypeMention=System.Void
90
+ M3 ( ref // not a ref type
91
+ int i ) // $ TypeMention=System.Int32
50
92
{
51
93
ref int j = ref i ;
52
94
scoped ref int k = ref j ;
53
- ( int , string ) tuple ;
95
+ ( int , // $ TypeMention=System.Int32
96
+ string ) tuple ; // $ TypeMention=System.String
54
97
}
98
+
99
+ class C4Nested < T1 >
100
+ {
101
+ } // $ Class=N1.C3+C4Nested`1
102
+
103
+ C3 . // $ TypeMention=N1.C3
104
+ C4Nested < // $ TypeMention=N1.C3+C4Nested`1
105
+ int // $ TypeMention=System.Int32
106
+ > // $ TypeMention=N1.C3+C4Nested<System.Int32>
107
+ M4 ( ) => null ;
55
108
} // $ Class=N1.C3
56
109
}
57
110
@@ -63,10 +116,13 @@ public class C2
63
116
{
64
117
public class C3
65
118
{
66
- void M (
119
+ void // $ TypeMention=System.Void
120
+ M (
67
121
C3 p1 , // $ TypeMention=N2.N3.C2+C3
68
- C2 . C3 p2 , // $ TypeMention=N2.N3.C2+C3
69
- N3 . C2 . C3 p3 , // $ TypeMention=N2.N3.C2+C3
122
+ C2 . // $ TypeMention=N2.N3.C2
123
+ C3 p2 , // $ TypeMention=N2.N3.C2+C3
124
+ N3 . C2 . // $ TypeMention=N2.N3.C2
125
+ C3 p3 , // $ TypeMention=N2.N3.C2+C3
70
126
N2 . N3 . C3 p4 , // $ TypeMention=N2.N3.C3
71
127
C2 p5 // $ TypeMention=N2.N3.C2
72
128
)
@@ -76,10 +132,13 @@ void M(
76
132
77
133
public class C3
78
134
{
79
- void M (
135
+ void // $ TypeMention=System.Void
136
+ M (
80
137
C3 p1 , // $ TypeMention=N2.N3.C3
81
- C2 . C3 p2 , // $ TypeMention=N2.N3.C2+C3
82
- N3 . C2 . C3 p3 , // $ TypeMention=N2.N3.C2+C3
138
+ C2 . // $ TypeMention=N2.N3.C2
139
+ C3 p2 , // $ TypeMention=N2.N3.C2+C3
140
+ N3 . C2 . // $ TypeMention=N2.N3.C2
141
+ C3 p3 , // $ TypeMention=N2.N3.C2+C3
83
142
N2 . N3 . C3 p4 , // $ TypeMention=N2.N3.C3
84
143
N3 . C3 p5 , // $ TypeMention=N2.N3.C3
85
144
C2 p6 // $ TypeMention=N2.N3.C2
@@ -88,3 +147,115 @@ void M(
88
147
} // $ Class=N2.N3.C3
89
148
}
90
149
}
150
+
151
+ namespace N4
152
+ {
153
+ // public class C
154
+ // {
155
+ // C.
156
+ // C2 // $ TypeMention=N4.C.C2
157
+ // field;
158
+
159
+ // void M() // $ TypeMention=System.Void
160
+ // {
161
+ // C.
162
+ // C2. // $ TypeMention=N4.C.C2
163
+ // M();
164
+ // }
165
+ // } // $ Class=N4.C
166
+
167
+ // namespace C
168
+ // {
169
+ // public class C2
170
+ // {
171
+ // public static void M() { } // $ TypeMention=System.Void
172
+ // } // $ Class=N4.C.C2
173
+ // }
174
+ }
175
+
176
+ namespace N5
177
+ {
178
+ class MyAttribute : System . Attribute
179
+ {
180
+ public MyAttribute (
181
+ int i // $ TypeMention=System.Int32
182
+ )
183
+ { }
184
+ } // $ Class=N5.MyAttribute
185
+
186
+ [ MyAttribute ( 1 ) ] // $ TypeMention=N5.MyAttribute
187
+ class C1 { } // $ Class=N5.C1
188
+
189
+ [ My ( 2 ) ] // $ TypeMention=N5.MyAttribute
190
+ class C2 { } // $ Class=N5.C2
191
+
192
+ class MyGenericAttribute < T > : System . Attribute { } // $ Class=N5.MyGenericAttribute`1
193
+ class MyGeneric2Attribute < T , U > : System . Attribute { } // $ Class=N5.MyGeneric2Attribute`2
194
+
195
+ [
196
+ MyGenericAttribute < // $ TypeMention=N5.MyGenericAttribute`1
197
+ int // $ TypeMention=System.Int32
198
+ > ( ) // $ TypeMention=N5.MyGenericAttribute<System.Int32>
199
+ ]
200
+ class C3 { } // $ Class=N5.C3
201
+
202
+ [
203
+ MyGeneric < // $ TypeMention=N5.MyGenericAttribute`1
204
+ string // $ TypeMention=System.String
205
+ > ( ) // $ TypeMention=N5.MyGenericAttribute<System.String>
206
+ ]
207
+ class C4 { } // $ Class=N5.C4
208
+
209
+ [
210
+ MyGeneric2 < // $ TypeMention=N5.MyGeneric2Attribute`2
211
+ int , // $ TypeMention=System.Int32
212
+ string // $ TypeMention=System.String
213
+ > ( ) // $ TypeMention=N5.MyGeneric2Attribute<System.Int32,System.String>
214
+ ]
215
+ class C5 { } // $ Class=N5.C5
216
+ }
217
+
218
+ namespace N6
219
+ {
220
+ class C1 < T >
221
+ {
222
+ T // $ TypeMention=N6.C1`1#T
223
+ M1 ( ) => throw null ;
224
+
225
+ void M2 < T > ( // $ TypeMention=System.Void
226
+ T x // $ TypeMention=N6.C1`1.M2`1#T
227
+ ) => throw null ;
228
+
229
+ class C2 < T >
230
+ {
231
+ T // $ TypeMention=N6.C1`1+C2`1#T
232
+ M ( ) => throw null ;
233
+ } // $ Class=N6.C1`1+C2`1
234
+
235
+ class C3
236
+ {
237
+ class T
238
+ {
239
+ } // $ Class=N6.C1`1+C3+T
240
+
241
+ T // $ TypeMention=N6.C1`1+C3+T
242
+ M ( ) => throw null ;
243
+ } // $ Class=N6.C1`1+C3
244
+
245
+ void M3 < T > ( // $ TypeMention=System.Void
246
+ T x // $ TypeMention=N6.C1`1.M3`1#T
247
+ )
248
+ {
249
+ void LocalFunc < T > (
250
+ T x // $ TypeMention=N6.C1`1.M3`1.LocalFunc`1#T
251
+ )
252
+ {
253
+ void InnerLocalFunc < T > (
254
+ T x // $ TypeMention=N6.C1`1.M3`1.LocalFunc`1.InnerLocalFunc`1#T
255
+ )
256
+ {
257
+ }
258
+ }
259
+ }
260
+ } // $ Class=N6.C1`1
261
+ }
0 commit comments