Merge pull request #4381 from BrzVlad/feature-generational-hash
[mono.git] / mono / tests / verifier / valid_merge_boxed_values.il
1 .assembly extern mscorlib
2 {
3   .ver 4:0:0:0
4   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
5 }
6 .assembly 'valid_merge_boxed_values'
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 valid_merge_boxed_values.exe // GUID = {47C47D22-2F3F-4B04-AED9-2BC28A196BCF}
16
17 .class private auto ansi sealed ThisDele extends [mscorlib]System.MulticastDelegate
18 {
19         .method public hidebysig specialname rtspecialname  instance default void '.ctor' (object 'object', native int 'method')  runtime managed 
20         {
21         }
22
23         .method public virtual hidebysig newslot instance default bool Invoke (object obj)  runtime managed 
24         {
25         }
26
27         .method public virtual hidebysig newslot  instance default class [mscorlib]System.IAsyncResult BeginInvoke (object obj, class [mscorlib]System.AsyncCallback callback, object 'object')  runtime managed 
28         {
29         }
30
31         .method public virtual hidebysig newslot  instance default bool EndInvoke (class [mscorlib]System.IAsyncResult result)  runtime managed 
32         {
33         }
34 }
35
36 .class interface private auto ansi abstract IFace
37 {
38         .method public virtual hidebysig newslot abstract instance default void Foo (class ThisDele b)  cil managed 
39         {
40         }
41 }
42
43 .class private sequential ansi sealed beforefieldinit MyList extends [mscorlib]System.ValueType implements IFace
44 {
45         .pack 0
46         .size 1
47
48         .method public final virtual hidebysig newslot 
49         instance default void Foo (class ThisDele b)  cil managed 
50         {
51                 .maxstack 8
52                 IL_0000:  ret 
53         }
54 }
55
56 .class private auto ansi beforefieldinit Driver extends [mscorlib]System.Object
57 {
58         .field private static  class ThisDele '<>f__mg$cache0'
59
60         .method public hidebysig specialname rtspecialname  instance default void '.ctor' ()  cil managed 
61         {
62                 .maxstack 8
63                 IL_0000:  ldarg.0 
64                 IL_0001:  call instance void object::'.ctor'()
65                 IL_0006:  ret 
66         }
67
68         .method private static hidebysig default bool Dele (object o)  cil managed 
69         {
70                 .maxstack 8
71                 IL_0000:  ldc.i4.0 
72                 IL_0001:  ret 
73         }
74
75         .method private static hidebysig default void Foo (class IFace a, class [mscorlib]System.Action b)  cil managed 
76         {
77                 .maxstack 8
78                 IL_0000:  ret 
79         }
80
81         .method private static hidebysig default void Main ()  cil managed 
82         {
83                 .entrypoint
84                 .maxstack 3
85                 .locals init (
86                         valuetype MyList        V_0,
87                         valuetype MyList        V_1)
88                 IL_0000:  ldloca.s 1
89                 IL_0002:  initobj MyList
90                 IL_0008:  ldloc.1 
91                 IL_0009:  stloc.0 
92                 IL_000a:  ldloc.0 
93                 IL_000b:  box MyList
94                 IL_0010:  ldsfld class ThisDele Driver::'<>f__mg$cache0'
95                 IL_0015:  brtrue.s IL_0028
96
97                 IL_0017:  ldnull 
98                 IL_0018:  ldftn bool class Driver::Dele(object)
99                 IL_001e:  newobj instance void class ThisDele::'.ctor'(object, native int)
100                 IL_0023:  stsfld class ThisDele Driver::'<>f__mg$cache0'
101                 IL_0028:  ldsfld class ThisDele Driver::'<>f__mg$cache0'
102                 IL_002d:  callvirt instance void class IFace::Foo(class ThisDele)
103                 IL_0032:  ret 
104         }
105 }
106