[runtime] Fix DISABLE_REFLECTION_EMIT build.
[mono.git] / mono / tests / verifier / invalid_bad_method_instantiation.il
1 .assembly extern mscorlib
2 {
3   .ver 2:0:0:0
4   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
5 }
6 .assembly 'bug-0'
7 {
8   .custom instance void class [mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::'.ctor'() =  (
9                 01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78   // ....T..WrapNonEx
10                 63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01       ) // ceptionThrows.
11
12   .hash algorithm 0x00008004
13   .ver  0:0:0:0
14 }
15 .module 'bug-0.exe' // GUID = {5680CF40-DE38-48DF-A437-2A55C9E7DA2E}
16
17
18   .class interface private auto ansi abstract IBar`1<T>
19   {
20
21     // method line 1
22     .method public virtual  hidebysig  newslot  abstract  specialname 
23            instance default void add_Handler (class Handler`1<!T> 'value')  cil managed 
24     {
25         // Method begins at RVA 0x0
26     } // end of method IBar`1::add_Handler
27
28     // method line 2
29     .method public virtual  hidebysig  newslot  abstract  specialname 
30            instance default void remove_Handler (class Handler`1<!T> 'value')  cil managed 
31     {
32         // Method begins at RVA 0x0
33     } // end of method IBar`1::remove_Handler
34
35         .event class Handler`1<!0> Handler
36         {
37                 .addon instance default void IBar`1::add_Handler (class Handler`1<!0> 'value') 
38                 .removeon instance default void IBar`1::remove_Handler (class Handler`1<!0> 'value') 
39         }
40   } // end of class IBar`1
41
42   .class private auto ansi beforefieldinit Foo`1<T>
43         extends [mscorlib]System.Object
44   {
45     .field  private  class IBar`1<!0> proxy
46     .field  private  class IBar`1<!0> real
47     .field  private  class Handler`1<!0> proxyHandler
48     .field  private  class Handler`1<!0> 'handler'
49
50     // method line 3
51     .method public hidebysig  specialname  rtspecialname 
52            instance default void '.ctor' ()  cil managed 
53     {
54         // Method begins at RVA 0x20ec
55         // Code size 7 (0x7)
56         .maxstack 8
57         IL_0000:  ldarg.0 
58         IL_0001:  call instance void object::'.ctor'()
59         IL_0006:  ret 
60     } // end of method Foo`1::.ctor
61
62     // method line 4
63     .method private hidebysig  specialname 
64            instance default void add_handler (class Handler`1<!T> 'value')  cil managed synchronized 
65     {
66         // Method begins at RVA 0x20f4
67         // Code size 24 (0x18)
68         .maxstack 8
69         IL_0000:  ldarg.0 
70         IL_0001:  ldarg.0 
71         IL_0002:  ldfld class Handler`1<!0> class Foo`1<!0>::'handler'
72         IL_0007:  ldarg.1 
73         IL_0008:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
74         IL_000d:  castclass class Handler`1<!0>
75         IL_0012:  stfld class Handler`1<!0> class Foo`1<!0>::'handler'
76         IL_0017:  ret 
77     } // end of method Foo`1::add_handler
78
79     // method line 5
80     .method private hidebysig  specialname 
81            instance default void remove_handler (class Handler`1<!T> 'value')  cil managed synchronized 
82     {
83         // Method begins at RVA 0x2110
84         // Code size 24 (0x18)
85         .maxstack 8
86         IL_0000:  ldarg.0 
87         IL_0001:  ldarg.0 
88         IL_0002:  ldfld class Handler`1<!0> class Foo`1<!0>::'handler'
89         IL_0007:  ldarg.1 
90         IL_0008:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
91         IL_000d:  castclass class Handler`1<!0>
92         IL_0012:  stfld class Handler`1<!0> class Foo`1<!0>::'handler'
93         IL_0017:  ret 
94     } // end of method Foo`1::remove_handler
95
96     // method line 6
97     .method public hidebysig  specialname 
98            instance default void add_Handler (class Handler`1<!T> 'value')  cil managed 
99     {
100         // Method begins at RVA 0x212c
101         // Code size 64 (0x40)
102         .maxstack 4
103         IL_0000:  ldarg.0 
104         IL_0001:  ldfld class Handler`1<!0> class Foo`1<!0>::'handler'
105         IL_0006:  brtrue IL_0028
106
107         IL_000b:  ldarg.0 
108         IL_000c:  ldfld class Handler`1<!0> class Foo`1<!0>::proxyHandler
109         IL_0011:  brtrue IL_0028
110
111         IL_0016:  ldarg.0 
112         IL_0017:  ldarg.0 
113         IL_0018:  ldftn instance void class Foo`1<!T>::'<Foo`1>m__0'<!!0> (object)
114         IL_001e:  newobj instance void class Handler`1<!T>::'.ctor'(object, native int)
115         IL_0023:  stfld class Handler`1<!0> class Foo`1<!0>::proxyHandler
116         IL_0028:  ldarg.0 
117         IL_0029:  dup 
118         IL_002a:  ldfld class Handler`1<!0> class Foo`1<!0>::'handler'
119         IL_002f:  ldarg.1 
120         IL_0030:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Combine(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
121         IL_0035:  castclass class Handler`1<!0>
122         IL_003a:  stfld class Handler`1<!0> class Foo`1<!0>::'handler'
123         IL_003f:  ret 
124     } // end of method Foo`1::add_Handler
125
126     // method line 7
127     .method public hidebysig  specialname 
128            instance default void remove_Handler (class Handler`1<!T> 'value')  cil managed 
129     {
130         // Method begins at RVA 0x2178
131         // Code size 24 (0x18)
132         .maxstack 8
133         IL_0000:  ldarg.0 
134         IL_0001:  dup 
135         IL_0002:  ldfld class Handler`1<!0> class Foo`1<!0>::'handler'
136         IL_0007:  ldarg.1 
137         IL_0008:  call class [mscorlib]System.Delegate class [mscorlib]System.Delegate::Remove(class [mscorlib]System.Delegate, class [mscorlib]System.Delegate)
138         IL_000d:  castclass class Handler`1<!0>
139         IL_0012:  stfld class Handler`1<!0> class Foo`1<!0>::'handler'
140         IL_0017:  ret 
141     } // end of method Foo`1::remove_Handler
142
143     // method line 8
144     .method private hidebysig 
145            instance default void '<Foo`1>m__0'<T> (object s)  cil managed 
146     {
147         .custom instance void class [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::'.ctor'() =  (01 00 00 00 ) // ....
148
149         // Method begins at RVA 0x2194
150         // Code size 18 (0x12)
151         .maxstack 8
152         IL_0000:  ldarg.0 
153         IL_0001:  ldfld class Handler`1<!0> class Foo`1<!0>::'handler'
154         IL_0006:  ldarg.0 
155         IL_0007:  ldfld class IBar`1<!0> class Foo`1<!0>::proxy
156         IL_000c:  callvirt instance void class Handler`1<!T>::Invoke(object)
157         IL_0011:  ret 
158     } // end of method Foo`1::<Foo`1>m__0
159
160         .event class Handler`1<!0> 'handler'
161         {
162                 .addon instance default void Foo`1::add_handler (class Handler`1<!0> 'value') 
163                 .removeon instance default void Foo`1::remove_handler (class Handler`1<!0> 'value') 
164         }
165         .event class Handler`1<!0> Handler
166         {
167                 .addon instance default void Foo`1::add_Handler (class Handler`1<!0> 'value') 
168                 .removeon instance default void Foo`1::remove_Handler (class Handler`1<!0> 'value') 
169         }
170   } // end of class Foo`1
171
172   .class private auto ansi beforefieldinit Program
173         extends [mscorlib]System.Object
174   {
175
176     // method line 9
177     .method public hidebysig  specialname  rtspecialname 
178            instance default void '.ctor' ()  cil managed 
179     {
180         // Method begins at RVA 0x21a8
181         // Code size 7 (0x7)
182         .maxstack 8
183         IL_0000:  ldarg.0 
184         IL_0001:  call instance void object::'.ctor'()
185         IL_0006:  ret 
186     } // end of method Program::.ctor
187
188     // method line 10
189     .method private static  hidebysig 
190            default void Main ()  cil managed 
191     {
192         // Method begins at RVA 0x21b0
193         .entrypoint
194         // Code size 14 (0xe)
195         .maxstack 3
196         .locals init (
197                 class Foo`1<int32>      V_0)
198         IL_0000:  newobj instance void class Foo`1<int32>::'.ctor'()
199         IL_0005:  stloc.0 
200         IL_0006:  ldloc.0 
201         IL_0007:  ldnull 
202         IL_0008:  callvirt instance void class Foo`1<int32>::add_Handler(class Handler`1<!0>)
203         IL_000d:  ret 
204     } // end of method Program::Main
205
206   } // end of class Program
207
208   .class private auto ansi sealed Handler`1<T>
209         extends [mscorlib]System.MulticastDelegate
210   {
211
212     // method line 11
213     .method public hidebysig  specialname  rtspecialname 
214            instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
215     {
216         // Method begins at RVA 0x0
217           // Disassembly of native methods is not supported
218     } // end of method Handler`1::.ctor
219
220     // method line 12
221     .method public virtual  hidebysig  newslot 
222            instance default void Invoke (object sender)  runtime managed 
223     {
224         // Method begins at RVA 0x0
225           // Disassembly of native methods is not supported
226     } // end of method Handler`1::Invoke
227
228     // method line 13
229     .method public virtual  hidebysig  newslot 
230            instance default class [mscorlib]System.IAsyncResult BeginInvoke (object sender, class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
231     {
232         // Method begins at RVA 0x0
233           // Disassembly of native methods is not supported
234     } // end of method Handler`1::BeginInvoke
235
236     // method line 14
237     .method public virtual  hidebysig  newslot 
238            instance default void EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
239     {
240         // Method begins at RVA 0x0
241           // Disassembly of native methods is not supported
242     } // end of method Handler`1::EndInvoke
243
244   } // end of class Handler`1
245