Merge pull request 2899 from krytarowski/netbsd-support-1
[mono.git] / mono / tests / verifier / invalid_generic_argument_violate_type_constraint.il
1
2 // unverifiable CIL which breaks the ECMA-335 rules. 
3 // this CIL should fail verification by a conforming CLI verifier.
4
5 .assembly 'unverifiable_src_ctrs_only_1_generated'
6 {
7   .hash algorithm 0x00008004
8   .ver  0:0:0:0
9 }
10
11 .assembly extern mscorlib
12 {
13   .ver 2:0:0:0
14   .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
15 }
16
17 .module bne_with_generic_type_type.exe
18
19 .class interface public auto ansi abstract IfaceA
20 {
21
22
23 .class interface public auto ansi abstract IfaceB
24 {
25
26
27 .class public auto ansi Class extends [mscorlib]System.Object
28 {
29         .method public hidebysig  specialname  rtspecialname instance default void '.ctor' ()  cil managed 
30         {
31             .maxstack 8
32                 ldarg.0 
33             call instance void object::'.ctor'()
34             ret 
35         }
36
37
38 .class public auto ansi DefaultArgument extends Class implements IfaceA, IfaceB
39 {
40         .method public hidebysig  specialname  rtspecialname instance default void '.ctor' ()  cil managed 
41         {
42             .maxstack 8
43                 ldarg.0 
44             call instance void Class::'.ctor'()
45             ret 
46         }
47
48
49
50
51 .class public auto ansi beforefieldinit Test < (IfaceA)  T>
52         extends [mscorlib]System.Object
53 {
54
55         .method public hidebysig  specialname  rtspecialname instance default void '.ctor' ()  cil managed 
56         {
57             .maxstack 8
58                 ldarg.0 
59             call instance void object::'.ctor'()
60             ret 
61         }
62
63         .method public static void Method ()
64         {
65                 .locals init ()
66                 ret
67         }
68 }
69
70 .class public auto ansi beforefieldinit Test2< T >
71         extends [mscorlib]System.Object
72 {
73         .method public static void Method ()
74         {
75                 .locals init ()
76                 call void class Test<!T>::Method ()
77                 ret
78         }
79 }
80
81 .method public static int32 Main ()
82 {
83         .entrypoint
84         .maxstack 8
85
86         call void class Test2< object >::Method()
87
88         ldc.i4.0
89         ret 
90 }
91