1 .assembly extern mscorlib
4 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
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.
12 .hash algorithm 0x00008004
15 .module dd.exe // GUID = {7278218D-519A-4CA2-B185-7B5A5A3F17E7}
18 .class public auto ansi beforefieldinit Foo`1<(class [mscorlib]System.BrokenIComparable`1<!T>) T>
19 extends [mscorlib]System.Object
23 .method public hidebysig specialname rtspecialname
24 instance default void '.ctor' () cil managed
26 // Method begins at RVA 0x20ec
30 IL_0001: call instance void object::'.ctor'()
32 } // end of method Foo`1::.ctor
35 .method public hidebysig
36 instance default string Test () cil managed
38 // Method begins at RVA 0x20f4
43 } // end of method Foo`1::Test
45 } // end of class Foo`1
47 .class public auto ansi beforefieldinit Foo
48 extends [mscorlib]System.Object
52 .method public hidebysig specialname rtspecialname
53 instance default void '.ctor' () cil managed
55 // Method begins at RVA 0x20f8
59 IL_0001: call instance void object::'.ctor'()
61 } // end of method Foo::.ctor
64 .method public hidebysig
65 instance default string Test<(class [mscorlib]System.BrokenIComparable`1<!!T>) T> () cil managed
67 // Method begins at RVA 0x2100
72 } // end of method Foo::Test
76 .class public auto ansi abstract sealed beforefieldinit Driver
77 extends [mscorlib]System.Object
81 .method private static hidebysig
82 default void UseBrokenMethod () cil managed
84 // Method begins at RVA 0x2104
87 IL_0000: newobj instance void class Foo::'.ctor'()
88 IL_0005: callvirt instance string class Foo::Test<int32> ()
91 } // end of method Driver::UseBrokenMethod
94 .method private static hidebysig
95 default void UseBrokenType () cil managed
97 // Method begins at RVA 0x2114
100 IL_0000: newobj instance void class Foo`1<int32>::'.ctor'()
101 IL_0005: callvirt instance string class Foo`1<int32>::Test()
104 } // end of method Driver::UseBrokenType
107 .method private static hidebysig
108 default void TestMethod () cil managed
110 // Method begins at RVA 0x2124
111 // Code size 47 (0x2f)
114 class [mscorlib]System.Type V_0,
115 class [mscorlib]System.Reflection.MethodInfo V_1,
116 class [mscorlib]System.Type V_2,
117 class [mscorlib]System.Type V_3)
119 IL_0005: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
122 IL_000c: ldstr "Test"
123 IL_0011: callvirt instance class [mscorlib]System.Reflection.MethodInfo class [mscorlib]System.Type::GetMethod(string)
126 IL_0018: callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Reflection.MethodInfo::GetGenericArguments()
131 IL_0021: callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Type::GetGenericParameterConstraints()
135 IL_0029: call void class Driver::UseBrokenMethod()
137 } // end of method Driver::TestMethod
140 .method private static hidebysig
141 default void TestClass () cil managed
143 // Method begins at RVA 0x2160
144 // Code size 35 (0x23)
147 class [mscorlib]System.Type V_0,
148 class [mscorlib]System.Type V_1,
149 class [mscorlib]System.Type V_2)
150 IL_0000: ldtoken Foo`1
151 IL_0005: call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
154 IL_000c: callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Type::GetGenericArguments()
159 IL_0015: callvirt instance class [mscorlib]System.Type[] class [mscorlib]System.Type::GetGenericParameterConstraints()
163 IL_001d: call void class Driver::UseBrokenType()
165 } // end of method Driver::TestClass
168 .method public static hidebysig
169 default int32 Main () cil managed
171 // Method begins at RVA 0x2190
173 // Code size 50 (0x32)
178 IL_0000: call void class Driver::TestMethod()
181 IL_0007: leave IL_0030
183 IL_000c: leave IL_0017
186 catch class [mscorlib]System.TypeLoadException { // 1
188 IL_0012: leave IL_0017
192 IL_0017: call void class Driver::TestClass()
195 IL_001e: leave IL_0030
197 IL_0023: leave IL_002e
200 catch class [mscorlib]System.TypeLoadException { // 0
202 IL_0029: leave IL_002e
209 } // end of method Driver::Main
211 } // end of class Driver