Adding new generics tests (#6709)
authorFadi Hanna <fadim@microsoft.com>
Tue, 16 Aug 2016 17:58:50 +0000 (10:58 -0700)
committerGitHub <noreply@github.com>
Tue, 16 Aug 2016 17:58:50 +0000 (10:58 -0700)
14 files changed:
tests/issues.targets
tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest612/Generated612.il [new file with mode: 0644]
tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest612/Generated612.ilproj [new file with mode: 0644]
tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest613/Generated613.il [new file with mode: 0644]
tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest613/Generated613.ilproj [new file with mode: 0644]
tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest614/Generated614.il [new file with mode: 0644]
tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest614/Generated614.ilproj [new file with mode: 0644]
tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest681/Generated681.il [new file with mode: 0644]
tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest681/Generated681.ilproj [new file with mode: 0644]
tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest682/Generated682.il [new file with mode: 0644]
tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest682/Generated682.ilproj [new file with mode: 0644]
tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest683/Generated683.il [new file with mode: 0644]
tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest683/Generated683.ilproj [new file with mode: 0644]
tests/testsFailingOutsideWindows.txt

index 1f4ae04..7ffe8fc 100644 (file)
         <ExcludeList Include="$(XunitTestBinBase)\GC\LargeMemory\API\gc\collect\*">
              <Issue>3392</Issue>
         </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\Loader\classloader\TypeGeneratorTests\TypeGeneratorTest612\Generated612\*">
+             <Issue>6707</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\Loader\classloader\TypeGeneratorTests\TypeGeneratorTest613\Generated613\*">
+             <Issue>6707</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\Loader\classloader\TypeGeneratorTests\TypeGeneratorTest614\Generated614\*">
+             <Issue>6707</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\Loader\classloader\TypeGeneratorTests\TypeGeneratorTest681\Generated681\*">
+             <Issue>6707</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\Loader\classloader\TypeGeneratorTests\TypeGeneratorTest682\Generated682\*">
+             <Issue>6707</Issue>
+        </ExcludeList>
+        <ExcludeList Include="$(XunitTestBinBase)\Loader\classloader\TypeGeneratorTests\TypeGeneratorTest683\Generated683\*">
+             <Issue>6707</Issue>
+        </ExcludeList>
     </ItemGroup>
 
     <!-- The following are baseline x86 failures -->
diff --git a/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest612/Generated612.il b/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest612/Generated612.il
new file mode 100644 (file)
index 0000000..7a54ee9
--- /dev/null
@@ -0,0 +1,2761 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+.assembly extern mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) .ver 4:0:0:0 }
+.assembly extern TestFramework { .publickeytoken = ( B0 3F 5F 7F 11 D5 0A 3A )  }
+
+//TYPES IN FORWARDER ASSEMBLIES:
+
+//TEST ASSEMBLY:
+.assembly Generated612 { .hash algorithm 0x00008004 }
+.module Generated612.exe
+
+.class public BaseClass0 
+{
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void [mscorlib]System.Object::.ctor()
+               ret
+       }
+}
+.class public BaseClass1 
+               extends BaseClass0
+{
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void BaseClass0::.ctor()
+               ret
+       }
+}
+.class public G3_C1084`1<T0> 
+               extends G2_C21
+               implements class IBase2`2<class BaseClass1,!T0> 
+{
+       .method public hidebysig newslot virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G3_C1084::Method7.14212<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase2<class BaseClass1,T0>.Method7'<M0>() cil managed noinlining { 
+               .override method instance string class IBase2`2<class BaseClass1,!T0>::Method7<[1]>()
+               ldstr "G3_C1084::Method7.MI.14213<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod3562() cil managed noinlining { 
+               ldstr "G3_C1084::ClassMethod3562.14214()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod3563() cil managed noinlining { 
+               ldstr "G3_C1084::ClassMethod3563.14215()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'G2_C21.ClassMethod1356'<M0>() cil managed noinlining { 
+               .override method instance string G2_C21::ClassMethod1356<[1]>()
+               ldstr "G3_C1084::ClassMethod1356.MI.14216<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void G2_C21::.ctor()
+               ret
+       }
+}
+.class public G2_C21 
+               extends class G1_C6`2<class BaseClass0,class BaseClass0>
+               implements class IBase2`2<class BaseClass0,class BaseClass1>, class IBase1`1<class BaseClass1> 
+{
+       .method public hidebysig newslot virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G2_C21::Method7.4928<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method4() cil managed noinlining { 
+               ldstr "G2_C21::Method4.4929()"
+               ret
+       }
+       .method public hidebysig virtual instance string Method5() cil managed noinlining { 
+               ldstr "G2_C21::Method5.4930()"
+               ret
+       }
+       .method public hidebysig virtual instance string Method6<M0>() cil managed noinlining { 
+               ldstr "G2_C21::Method6.4931<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1356<M0>() cil managed noinlining { 
+               ldstr "G2_C21::ClassMethod1356.4932<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'G1_C6<class BaseClass0,class BaseClass0>.ClassMethod1326'() cil managed noinlining { 
+               .override method instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1326()
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'G1_C6<class BaseClass0,class BaseClass0>.ClassMethod1327'<M0>() cil managed noinlining { 
+               .override method instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1327<[1]>()
+               ldstr "G2_C21::ClassMethod1327.MI.4934<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void class G1_C6`2<class BaseClass0,class BaseClass0>::.ctor()
+               ret
+       }
+}
+.class interface public abstract IBase2`2<+T0, -T1> 
+{
+       .method public hidebysig newslot abstract virtual instance string Method7<M0>() cil managed { }
+}
+.class public G1_C6`2<T0, T1> 
+               implements class IBase2`2<class BaseClass1,!T0> 
+{
+       .method public hidebysig newslot virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G1_C6::Method7.4808<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1326() cil managed noinlining { 
+               ldstr "G1_C6::ClassMethod1326.4809()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1327<M0>() cil managed noinlining { 
+               ldstr "G1_C6::ClassMethod1327.4810<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void [mscorlib]System.Object::.ctor()
+               ret
+       }
+}
+.class interface public abstract IBase1`1<+T0> 
+{
+       .method public hidebysig newslot abstract virtual instance string Method4() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method5() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method6<M0>() cil managed { }
+}
+.class private auto ansi beforefieldinit Framework {
+       .method static void M.BaseClass0<(BaseClass0)W>(!!W inst, string exp) cil managed {
+               .maxstack 5
+               .locals init (string[] actualResults)
+               ldc.i4.s    0
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.BaseClass0<(BaseClass0)W>(!!W inst, string exp)"
+               ldc.i4.s 0
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.BaseClass1<(BaseClass1)W>(!!W inst, string exp) cil managed {
+               .maxstack 5
+               .locals init (string[] actualResults)
+               ldc.i4.s    0
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.BaseClass1<(BaseClass1)W>(!!W inst, string exp)"
+               ldc.i4.s 0
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1084.T<T0,(class G3_C1084`1<!!T0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 14
+               .locals init (string[] actualResults)
+               ldc.i4.s    9
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1084.T<T0,(class G3_C1084`1<!!T0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 9
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<!!T0>::ClassMethod1326()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<!!T0>::ClassMethod1327<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<!!T0>::ClassMethod1356<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<!!T0>::ClassMethod3562()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<!!T0>::ClassMethod3563()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<!!T0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<!!T0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<!!T0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     8
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<!!T0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1084.A<(class G3_C1084`1<class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 14
+               .locals init (string[] actualResults)
+               ldc.i4.s    9
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1084.A<(class G3_C1084`1<class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 9
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass0>::ClassMethod1326()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass0>::ClassMethod1327<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass0>::ClassMethod1356<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass0>::ClassMethod3562()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass0>::ClassMethod3563()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     8
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1084.B<(class G3_C1084`1<class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 14
+               .locals init (string[] actualResults)
+               ldc.i4.s    9
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1084.B<(class G3_C1084`1<class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 9
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass1>::ClassMethod1326()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass1>::ClassMethod1327<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass1>::ClassMethod1356<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass1>::ClassMethod3562()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass1>::ClassMethod3563()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     8
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1084`1<class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C21<(G2_C21)W>(!!W inst, string exp) cil managed {
+               .maxstack 12
+               .locals init (string[] actualResults)
+               ldc.i4.s    7
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C21<(G2_C21)W>(!!W inst, string exp)"
+               ldc.i4.s 7
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C21::ClassMethod1326()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C21::ClassMethod1327<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C21::ClassMethod1356<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C21::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C21::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C21::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C21::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.T.T<T0,T1,(class IBase2`2<!!T0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.T.T<T0,T1,(class IBase2`2<!!T0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<!!T0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.T<T1,(class IBase2`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.T<T1,(class IBase2`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.A<(class IBase2`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.A<(class IBase2`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.B<(class IBase2`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.B<(class IBase2`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.T<T1,(class IBase2`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.T<T1,(class IBase2`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.A<(class IBase2`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.A<(class IBase2`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.B<(class IBase2`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.B<(class IBase2`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C6.T.T<T0,T1,(class G1_C6`2<!!T0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C6.T.T<T0,T1,(class G1_C6`2<!!T0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<!!T0,!!T1>::ClassMethod1326()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<!!T0,!!T1>::ClassMethod1327<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<!!T0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C6.A.T<T1,(class G1_C6`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C6.A.T<T1,(class G1_C6`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass0,!!T1>::ClassMethod1326()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass0,!!T1>::ClassMethod1327<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C6.A.A<(class G1_C6`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C6.A.A<(class G1_C6`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1326()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1327<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C6.A.B<(class G1_C6`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C6.A.B<(class G1_C6`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass0,class BaseClass1>::ClassMethod1326()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass0,class BaseClass1>::ClassMethod1327<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C6.B.T<T1,(class G1_C6`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C6.B.T<T1,(class G1_C6`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass1,!!T1>::ClassMethod1326()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass1,!!T1>::ClassMethod1327<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass1,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C6.B.A<(class G1_C6`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C6.B.A<(class G1_C6`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass1,class BaseClass0>::ClassMethod1326()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass1,class BaseClass0>::ClassMethod1327<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C6.B.B<(class G1_C6`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C6.B.B<(class G1_C6`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass1,class BaseClass1>::ClassMethod1326()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass1,class BaseClass1>::ClassMethod1327<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C6`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.T<T0,(class IBase1`1<!!T0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.T<T0,(class IBase1`1<!!T0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.A<(class IBase1`1<class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.A<(class IBase1`1<class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.B<(class IBase1`1<class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.B<(class IBase1`1<class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method public hidebysig static void MethodCallingTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Method Calling Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1084`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1327<object>()
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1326()
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::ClassMethod1356<object>()
+               ldstr "G3_C1084::ClassMethod1356.MI.14216<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::Method6<object>()
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::Method5()
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::Method4()
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::Method7<object>()
+               ldstr "G2_C21::Method7.4928<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::ClassMethod1327<object>()
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::ClassMethod1326()
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G3_C1084`1<class BaseClass0>
+               callvirt instance string class G3_C1084`1<class BaseClass0>::ClassMethod3563()
+               ldstr "G3_C1084::ClassMethod3563.14215()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass0>
+               callvirt instance string class G3_C1084`1<class BaseClass0>::ClassMethod3562()
+               ldstr "G3_C1084::ClassMethod3562.14214()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass0>
+               callvirt instance string class G3_C1084`1<class BaseClass0>::Method7<object>()
+               ldstr "G3_C1084::Method7.14212<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass0>
+               callvirt instance string class G3_C1084`1<class BaseClass0>::ClassMethod1356<object>()
+               ldstr "G3_C1084::ClassMethod1356.MI.14216<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass0>
+               callvirt instance string class G3_C1084`1<class BaseClass0>::Method6<object>()
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass0>
+               callvirt instance string class G3_C1084`1<class BaseClass0>::Method5()
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass0>
+               callvirt instance string class G3_C1084`1<class BaseClass0>::Method4()
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass0>
+               callvirt instance string class G3_C1084`1<class BaseClass0>::ClassMethod1327<object>()
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass0>
+               callvirt instance string class G3_C1084`1<class BaseClass0>::ClassMethod1326()
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G3_C1084`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1327<object>()
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1326()
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::ClassMethod1356<object>()
+               ldstr "G3_C1084::ClassMethod1356.MI.14216<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::Method6<object>()
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::Method5()
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::Method4()
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::Method7<object>()
+               ldstr "G2_C21::Method7.4928<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::ClassMethod1327<object>()
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::ClassMethod1326()
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G3_C1084`1<class BaseClass1>
+               callvirt instance string class G3_C1084`1<class BaseClass1>::ClassMethod3563()
+               ldstr "G3_C1084::ClassMethod3563.14215()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass1>
+               callvirt instance string class G3_C1084`1<class BaseClass1>::ClassMethod3562()
+               ldstr "G3_C1084::ClassMethod3562.14214()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass1>
+               callvirt instance string class G3_C1084`1<class BaseClass1>::Method7<object>()
+               ldstr "G3_C1084::Method7.14212<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass1>
+               callvirt instance string class G3_C1084`1<class BaseClass1>::ClassMethod1356<object>()
+               ldstr "G3_C1084::ClassMethod1356.MI.14216<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass1>
+               callvirt instance string class G3_C1084`1<class BaseClass1>::Method6<object>()
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass1>
+               callvirt instance string class G3_C1084`1<class BaseClass1>::Method5()
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass1>
+               callvirt instance string class G3_C1084`1<class BaseClass1>::Method4()
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass1>
+               callvirt instance string class G3_C1084`1<class BaseClass1>::ClassMethod1327<object>()
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1084`1<class BaseClass1>
+               callvirt instance string class G3_C1084`1<class BaseClass1>::ClassMethod1326()
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C21::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1327<object>()
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1326()
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C21::Method7.4928<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::ClassMethod1356<object>()
+               ldstr "G2_C21::ClassMethod1356.4932<System.Object>()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::Method6<object>()
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::Method5()
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::Method4()
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::Method7<object>()
+               ldstr "G2_C21::Method7.4928<System.Object>()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::ClassMethod1327<object>()
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C21
+               callvirt instance string class G2_C21::ClassMethod1326()
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G1_C6`2<class BaseClass0,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1327<object>()
+               ldstr "G1_C6::ClassMethod1327.4810<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1326()
+               ldstr "G1_C6::ClassMethod1326.4809()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G1_C6`2<class BaseClass0,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass1>::ClassMethod1327<object>()
+               ldstr "G1_C6::ClassMethod1327.4810<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass1>::ClassMethod1326()
+               ldstr "G1_C6::ClassMethod1326.4809()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G1_C6`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G1_C6`2<class BaseClass1,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C6`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass1,class BaseClass0>::ClassMethod1327<object>()
+               ldstr "G1_C6::ClassMethod1327.4810<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass1,class BaseClass0> on type class G1_C6`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass1,class BaseClass0>::ClassMethod1326()
+               ldstr "G1_C6::ClassMethod1326.4809()"
+               ldstr "class G1_C6`2<class BaseClass1,class BaseClass0> on type class G1_C6`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G1_C6`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass1,class BaseClass0> on type class G1_C6`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G1_C6`2<class BaseClass1,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C6`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C6`2<class BaseClass1,class BaseClass1>::ClassMethod1327<object>()
+               ldstr "G1_C6::ClassMethod1327.4810<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C6`2<class BaseClass1,class BaseClass1>::ClassMethod1326()
+               ldstr "G1_C6::ClassMethod1326.4809()"
+               ldstr "class G1_C6`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C6`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C6`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void ConstrainedCallsTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Constrained Calls Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1084`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.T.T<class BaseClass0,class BaseClass0,class G3_C1084`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.A.T<class BaseClass0,class G3_C1084`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.A.A<class G3_C1084`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass0,class G3_C1084`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass0,class G3_C1084`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.B.A<class G3_C1084`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G3_C1084`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G3_C1084`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G3_C1084`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G3_C1084`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G3_C1084`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G3_C1084`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G3_C1084`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G3_C1084`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G3_C1084`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G3_C1084::ClassMethod1356.MI.14216<System.Object>()#G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#G2_C21::Method7.4928<System.Object>()#"
+               call void Framework::M.G2_C21<class G3_C1084`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G3_C1084`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#"
+               call void Framework::M.IBase1.B<class G3_C1084`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G3_C1084`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#"
+               call void Framework::M.IBase1.A<class G3_C1084`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G3_C1084::ClassMethod1356.MI.14216<System.Object>()#G3_C1084::ClassMethod3562.14214()#G3_C1084::ClassMethod3563.14215()#G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#G3_C1084::Method7.14212<System.Object>()#"
+               call void Framework::M.G3_C1084.T<class BaseClass0,class G3_C1084`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G3_C1084::ClassMethod1356.MI.14216<System.Object>()#G3_C1084::ClassMethod3562.14214()#G3_C1084::ClassMethod3563.14215()#G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#G3_C1084::Method7.14212<System.Object>()#"
+               call void Framework::M.G3_C1084.A<class G3_C1084`1<class BaseClass0>>(!!0,string)
+               newobj instance void class G3_C1084`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.T.T<class BaseClass0,class BaseClass0,class G3_C1084`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.A.T<class BaseClass0,class G3_C1084`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.A.A<class G3_C1084`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass0,class G3_C1084`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass0,class G3_C1084`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.A<class G3_C1084`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G3_C1084`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G3_C1084`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G3_C1084`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G3_C1084`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G3_C1084`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G3_C1084`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G3_C1084`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G3_C1084`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G3_C1084`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G3_C1084::ClassMethod1356.MI.14216<System.Object>()#G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#G2_C21::Method7.4928<System.Object>()#"
+               call void Framework::M.G2_C21<class G3_C1084`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G3_C1084`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#"
+               call void Framework::M.IBase1.B<class G3_C1084`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G3_C1084`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#"
+               call void Framework::M.IBase1.A<class G3_C1084`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G3_C1084::ClassMethod1356.MI.14216<System.Object>()#G3_C1084::ClassMethod3562.14214()#G3_C1084::ClassMethod3563.14215()#G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#G3_C1084::Method7.14212<System.Object>()#"
+               call void Framework::M.G3_C1084.T<class BaseClass1,class G3_C1084`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G3_C1084::ClassMethod1356.MI.14216<System.Object>()#G3_C1084::ClassMethod3562.14214()#G3_C1084::ClassMethod3563.14215()#G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#G3_C1084::Method7.14212<System.Object>()#"
+               call void Framework::M.G3_C1084.B<class G3_C1084`1<class BaseClass1>>(!!0,string)
+               newobj instance void class G2_C21::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.T.T<class BaseClass0,class BaseClass0,class G2_C21>(!!2,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.A.T<class BaseClass0,class G2_C21>(!!1,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.A.A<class G2_C21>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass0,class G2_C21>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass0,class G2_C21>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.A<class G2_C21>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C21>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C21>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C21>(!!0,string)
+               ldloc.0
+               ldstr "G2_C21::Method7.4928<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C21>(!!2,string)
+               ldloc.0
+               ldstr "G2_C21::Method7.4928<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C21>(!!1,string)
+               ldloc.0
+               ldstr "G2_C21::Method7.4928<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C21>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G2_C21>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G2_C21>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G2_C21>(!!0,string)
+               ldloc.0
+               ldstr "G2_C21::ClassMethod1326.MI.4933()#G2_C21::ClassMethod1327.MI.4934<System.Object>()#G2_C21::ClassMethod1356.4932<System.Object>()#G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#G2_C21::Method7.4928<System.Object>()#"
+               call void Framework::M.G2_C21<class G2_C21>(!!0,string)
+               ldloc.0
+               ldstr "G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C21>(!!1,string)
+               ldloc.0
+               ldstr "G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C21>(!!0,string)
+               ldloc.0
+               ldstr "G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C21>(!!1,string)
+               ldloc.0
+               ldstr "G2_C21::Method4.4929()#G2_C21::Method5.4930()#G2_C21::Method6.4931<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C21>(!!0,string)
+               newobj instance void class G1_C6`2<class BaseClass0,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C6::ClassMethod1326.4809()#G1_C6::ClassMethod1327.4810<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.T.T<class BaseClass0,class BaseClass0,class G1_C6`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::ClassMethod1326.4809()#G1_C6::ClassMethod1327.4810<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.A.T<class BaseClass0,class G1_C6`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::ClassMethod1326.4809()#G1_C6::ClassMethod1327.4810<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.A.A<class G1_C6`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass0,class G1_C6`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass0,class G1_C6`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.A<class G1_C6`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G1_C6`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G1_C6`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G1_C6`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G1_C6`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G1_C6`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G1_C6`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G1_C6`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G1_C6`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G1_C6`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               newobj instance void class G1_C6`2<class BaseClass0,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C6::ClassMethod1326.4809()#G1_C6::ClassMethod1327.4810<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.T.T<class BaseClass0,class BaseClass1,class G1_C6`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::ClassMethod1326.4809()#G1_C6::ClassMethod1327.4810<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.A.T<class BaseClass1,class G1_C6`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::ClassMethod1326.4809()#G1_C6::ClassMethod1327.4810<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.A.B<class G1_C6`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass0,class G1_C6`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass0,class G1_C6`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.A<class G1_C6`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G1_C6`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G1_C6`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G1_C6`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G1_C6`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G1_C6`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G1_C6`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G1_C6`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G1_C6`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G1_C6`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               newobj instance void class G1_C6`2<class BaseClass1,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C6::ClassMethod1326.4809()#G1_C6::ClassMethod1327.4810<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.T.T<class BaseClass1,class BaseClass0,class G1_C6`2<class BaseClass1,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::ClassMethod1326.4809()#G1_C6::ClassMethod1327.4810<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.B.T<class BaseClass0,class G1_C6`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::ClassMethod1326.4809()#G1_C6::ClassMethod1327.4810<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.B.A<class G1_C6`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G1_C6`2<class BaseClass1,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G1_C6`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G1_C6`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G1_C6`2<class BaseClass1,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G1_C6`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G1_C6`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               newobj instance void class G1_C6`2<class BaseClass1,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C6::ClassMethod1326.4809()#G1_C6::ClassMethod1327.4810<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.T.T<class BaseClass1,class BaseClass1,class G1_C6`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::ClassMethod1326.4809()#G1_C6::ClassMethod1327.4810<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.B.T<class BaseClass1,class G1_C6`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::ClassMethod1326.4809()#G1_C6::ClassMethod1327.4810<System.Object>()#G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.G1_C6.B.B<class G1_C6`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G1_C6`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G1_C6`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G1_C6`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G1_C6`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G1_C6`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C6::Method7.4808<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G1_C6`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void StructConstrainedInterfaceCallsTest() cil managed
+       {
+               .maxstack  10
+               ldstr "===================== Struct Constrained Interface Calls Test ====================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void CalliTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Method Calli Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1084`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1327<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1326()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::ClassMethod1356<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G3_C1084::ClassMethod1356.MI.14216<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::Method6<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::Method5()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::Method4()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method7.4928<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::ClassMethod1327<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::ClassMethod1326()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass0>::ClassMethod3563()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G3_C1084::ClassMethod3563.14215()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass0>::ClassMethod3562()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G3_C1084::ClassMethod3562.14214()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G3_C1084::Method7.14212<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass0>::ClassMethod1356<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G3_C1084::ClassMethod1356.MI.14216<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass0>::ClassMethod1327<object>()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass0>::ClassMethod1326()
+               calli default string(class G3_C1084`1<class BaseClass0>)
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G3_C1084`1<class BaseClass0> on type class G3_C1084`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G3_C1084`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1327<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1326()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G3_C1084::Method7.MI.14213<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::ClassMethod1356<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G3_C1084::ClassMethod1356.MI.14216<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::Method6<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::Method5()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::Method4()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method7.4928<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::ClassMethod1327<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::ClassMethod1326()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G2_C21 on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass1>::ClassMethod3563()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G3_C1084::ClassMethod3563.14215()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass1>::ClassMethod3562()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G3_C1084::ClassMethod3562.14214()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G3_C1084::Method7.14212<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass1>::ClassMethod1356<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G3_C1084::ClassMethod1356.MI.14216<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass1>::ClassMethod1327<object>()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1084`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1084`1<class BaseClass1>::ClassMethod1326()
+               calli default string(class G3_C1084`1<class BaseClass1>)
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G3_C1084`1<class BaseClass1> on type class G3_C1084`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C21::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1327<object>()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1326()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C21)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C21)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C21)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::Method7.4928<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C21)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::ClassMethod1356<object>()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::ClassMethod1356.4932<System.Object>()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::Method6<object>()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::Method5()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::Method4()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::Method7<object>()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::Method7.4928<System.Object>()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::ClassMethod1327<object>()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::ClassMethod1327.MI.4934<System.Object>()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C21
+               ldloc.0
+               ldvirtftn instance string class G2_C21::ClassMethod1326()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::ClassMethod1326.MI.4933()"
+               ldstr "class G2_C21 on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::Method4.4929()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::Method5.4930()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C21)
+               ldstr "G2_C21::Method6.4931<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C21"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G1_C6`2<class BaseClass0,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1327<object>()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C6::ClassMethod1327.4810<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass0>::ClassMethod1326()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C6::ClassMethod1326.4809()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G1_C6`2<class BaseClass0,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass1>::ClassMethod1327<object>()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C6::ClassMethod1327.4810<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass1>::ClassMethod1326()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C6::ClassMethod1326.4809()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G1_C6`2<class BaseClass1,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass1,class BaseClass0>::ClassMethod1327<object>()
+               calli default string(class G1_C6`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C6::ClassMethod1327.4810<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass1,class BaseClass0> on type class G1_C6`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass1,class BaseClass0>::ClassMethod1326()
+               calli default string(class G1_C6`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C6::ClassMethod1326.4809()"
+               ldstr "class G1_C6`2<class BaseClass1,class BaseClass0> on type class G1_C6`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass1,class BaseClass0> on type class G1_C6`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G1_C6`2<class BaseClass1,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass1,class BaseClass1>::ClassMethod1327<object>()
+               calli default string(class G1_C6`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C6::ClassMethod1327.4810<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass1,class BaseClass1>::ClassMethod1326()
+               calli default string(class G1_C6`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C6::ClassMethod1326.4809()"
+               ldstr "class G1_C6`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C6`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C6`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class G1_C6`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G1_C6`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C6::Method7.4808<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G1_C6`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static int32  Main() cil managed
+       {
+               .entrypoint
+               .maxstack  10
+               call void Framework::MethodCallingTest()
+               call void Framework::ConstrainedCallsTest()
+               call void Framework::StructConstrainedInterfaceCallsTest()
+               call void Framework::CalliTest()
+               ldc.i4 100
+               ret
+       }
+}
diff --git a/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest612/Generated612.ilproj b/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest612/Generated612.ilproj
new file mode 100644 (file)
index 0000000..d3a7ae1
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+  <PropertyGroup>
+    <AssemblyName>Generated612</AssemblyName>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+    <OutputType>Exe</OutputType>
+    <CLRTestKind>BuildAndRun</CLRTestKind>
+    <CLRTestPriority>1</CLRTestPriority>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="Generated612.il" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Include="..\app.config" />
+  </ItemGroup>
+  
+  <ItemGroup>
+    <ProjectReference Include="..\TestFramework\TestFramework.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
diff --git a/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest613/Generated613.il b/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest613/Generated613.il
new file mode 100644 (file)
index 0000000..5b41787
--- /dev/null
@@ -0,0 +1,3365 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+.assembly extern mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) .ver 4:0:0:0 }
+.assembly extern TestFramework { .publickeytoken = ( B0 3F 5F 7F 11 D5 0A 3A )  }
+
+//TYPES IN FORWARDER ASSEMBLIES:
+
+//TEST ASSEMBLY:
+.assembly Generated613 { .hash algorithm 0x00008004 }
+.module Generated613.exe
+
+.class public BaseClass0 
+{
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void [mscorlib]System.Object::.ctor()
+               ret
+       }
+}
+.class public BaseClass1 
+               extends BaseClass0
+{
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void BaseClass0::.ctor()
+               ret
+       }
+}
+.class public G3_C1085`1<T0> 
+               extends G2_C40
+               implements class IBase1`1<class BaseClass1> 
+{
+       .method public hidebysig virtual instance string Method4() cil managed noinlining { 
+               ldstr "G3_C1085::Method4.14217()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method4'() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G3_C1085::Method4.MI.14218()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method5() cil managed noinlining { 
+               ldstr "G3_C1085::Method5.14219()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method5'() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G3_C1085::Method5.MI.14220()"
+               ret
+       }
+       .method public hidebysig virtual instance string Method6<M0>() cil managed noinlining { 
+               ldstr "G3_C1085::Method6.14221<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod3564() cil managed noinlining { 
+               ldstr "G3_C1085::ClassMethod3564.14222()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod3565() cil managed noinlining { 
+               ldstr "G3_C1085::ClassMethod3565.14223()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'G2_C40.ClassMethod1398'<M0>() cil managed noinlining { 
+               .override method instance string G2_C40::ClassMethod1398<[1]>()
+               ldstr "G3_C1085::ClassMethod1398.MI.14224<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'G2_C40.ClassMethod1399'<M0>() cil managed noinlining { 
+               .override method instance string G2_C40::ClassMethod1399<[1]>()
+               ldstr "G3_C1085::ClassMethod1399.MI.14225<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void G2_C40::.ctor()
+               ret
+       }
+}
+.class public G2_C40 
+               extends class G1_C13`2<class BaseClass1,class BaseClass1>
+               implements IBase0, class IBase2`2<class BaseClass1,class BaseClass0> 
+{
+       .method public hidebysig virtual instance string Method0() cil managed noinlining { 
+               ldstr "G2_C40::Method0.5117()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method1() cil managed noinlining { 
+               ldstr "G2_C40::Method1.5118()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase0.Method1'() cil managed noinlining { 
+               .override method instance string IBase0::Method1()
+               ldstr "G2_C40::Method1.MI.5119()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method2<M0>() cil managed noinlining { 
+               ldstr "G2_C40::Method2.5120<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase0.Method2'<M0>() cil managed noinlining { 
+               .override method instance string IBase0::Method2<[1]>()
+               ldstr "G2_C40::Method2.MI.5121<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method3<M0>() cil managed noinlining { 
+               ldstr "G2_C40::Method3.5122<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase0.Method3'<M0>() cil managed noinlining { 
+               .override method instance string IBase0::Method3<[1]>()
+               ldstr "G2_C40::Method3.MI.5123<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G2_C40::Method7.5124<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase2<class BaseClass1,class BaseClass0>.Method7'<M0>() cil managed noinlining { 
+               .override method instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<[1]>()
+               ldstr "G2_C40::Method7.MI.5125<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1397() cil managed noinlining { 
+               ldstr "G2_C40::ClassMethod1397.5126()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1398<M0>() cil managed noinlining { 
+               ldstr "G2_C40::ClassMethod1398.5127<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1399<M0>() cil managed noinlining { 
+               ldstr "G2_C40::ClassMethod1399.5128<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'G1_C13<class BaseClass1,class BaseClass1>.ClassMethod1349'<M0>() cil managed noinlining { 
+               .override method instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1349<[1]>()
+               ldstr "G2_C40::ClassMethod1349.MI.5129<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void class G1_C13`2<class BaseClass1,class BaseClass1>::.ctor()
+               ret
+       }
+}
+.class interface public abstract IBase1`1<+T0> 
+{
+       .method public hidebysig newslot abstract virtual instance string Method4() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method5() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method6<M0>() cil managed { }
+}
+.class public abstract G1_C13`2<T0, T1> 
+               implements class IBase2`2<!T0,!T1>, class IBase1`1<!T0> 
+{
+       .method public hidebysig virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G1_C13::Method7.4871<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method4() cil managed noinlining { 
+               ldstr "G1_C13::Method4.4872()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method5() cil managed noinlining { 
+               ldstr "G1_C13::Method5.4873()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<T0>.Method5'() cil managed noinlining { 
+               .override method instance string class IBase1`1<!T0>::Method5()
+               ldstr "G1_C13::Method5.MI.4874()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method6<M0>() cil managed noinlining { 
+               ldstr "G1_C13::Method6.4875<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1348<M0>() cil managed noinlining { 
+               ldstr "G1_C13::ClassMethod1348.4876<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1349<M0>() cil managed noinlining { 
+               ldstr "G1_C13::ClassMethod1349.4877<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void [mscorlib]System.Object::.ctor()
+               ret
+       }
+}
+.class interface public abstract IBase0 
+{
+       .method public hidebysig newslot abstract virtual instance string Method0() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method1() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method2<M0>() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method3<M0>() cil managed { }
+}
+.class interface public abstract IBase2`2<+T0, -T1> 
+{
+       .method public hidebysig newslot abstract virtual instance string Method7<M0>() cil managed { }
+}
+.class private auto ansi beforefieldinit Framework {
+       .method static void M.BaseClass0<(BaseClass0)W>(!!W inst, string exp) cil managed {
+               .maxstack 5
+               .locals init (string[] actualResults)
+               ldc.i4.s    0
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.BaseClass0<(BaseClass0)W>(!!W inst, string exp)"
+               ldc.i4.s 0
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.BaseClass1<(BaseClass1)W>(!!W inst, string exp) cil managed {
+               .maxstack 5
+               .locals init (string[] actualResults)
+               ldc.i4.s    0
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.BaseClass1<(BaseClass1)W>(!!W inst, string exp)"
+               ldc.i4.s 0
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1085.T<T0,(class G3_C1085`1<!!T0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 20
+               .locals init (string[] actualResults)
+               ldc.i4.s    15
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1085.T<T0,(class G3_C1085`1<!!T0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 15
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::ClassMethod1348<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::ClassMethod1349<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::ClassMethod1397()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::ClassMethod1398<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::ClassMethod1399<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::ClassMethod3564()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::ClassMethod3565()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::Method0()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     8
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::Method1()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     9
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::Method2<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     10
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::Method3<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     11
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     12
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     13
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     14
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<!!T0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1085.A<(class G3_C1085`1<class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 20
+               .locals init (string[] actualResults)
+               ldc.i4.s    15
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1085.A<(class G3_C1085`1<class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 15
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::ClassMethod1348<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::ClassMethod1349<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::ClassMethod1397()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::ClassMethod1398<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::ClassMethod1399<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::ClassMethod3564()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::ClassMethod3565()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::Method0()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     8
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::Method1()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     9
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::Method2<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     10
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::Method3<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     11
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     12
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     13
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     14
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1085.B<(class G3_C1085`1<class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 20
+               .locals init (string[] actualResults)
+               ldc.i4.s    15
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1085.B<(class G3_C1085`1<class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 15
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::ClassMethod1348<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::ClassMethod1349<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::ClassMethod1397()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::ClassMethod1398<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::ClassMethod1399<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::ClassMethod3564()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::ClassMethod3565()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::Method0()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     8
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::Method1()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     9
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::Method2<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     10
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::Method3<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     11
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     12
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     13
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     14
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1085`1<class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C40<(G2_C40)W>(!!W inst, string exp) cil managed {
+               .maxstack 18
+               .locals init (string[] actualResults)
+               ldc.i4.s    13
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C40<(G2_C40)W>(!!W inst, string exp)"
+               ldc.i4.s 13
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::ClassMethod1348<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::ClassMethod1349<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::ClassMethod1397()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::ClassMethod1398<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::ClassMethod1399<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::Method0()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::Method1()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::Method2<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     8
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::Method3<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     9
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     10
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     11
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     12
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C40::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.T<T0,(class IBase1`1<!!T0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.T<T0,(class IBase1`1<!!T0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.A<(class IBase1`1<class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.A<(class IBase1`1<class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.B<(class IBase1`1<class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.B<(class IBase1`1<class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C13.T.T<T0,T1,(class G1_C13`2<!!T0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C13.T.T<T0,T1,(class G1_C13`2<!!T0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<!!T0,!!T1>::ClassMethod1348<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<!!T0,!!T1>::ClassMethod1349<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<!!T0,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<!!T0,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<!!T0,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<!!T0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C13.A.T<T1,(class G1_C13`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C13.A.T<T1,(class G1_C13`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,!!T1>::ClassMethod1348<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,!!T1>::ClassMethod1349<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C13.A.A<(class G1_C13`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C13.A.A<(class G1_C13`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,class BaseClass0>::ClassMethod1348<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,class BaseClass0>::ClassMethod1349<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C13.A.B<(class G1_C13`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C13.A.B<(class G1_C13`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,class BaseClass1>::ClassMethod1348<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,class BaseClass1>::ClassMethod1349<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C13.B.T<T1,(class G1_C13`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C13.B.T<T1,(class G1_C13`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,!!T1>::ClassMethod1348<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,!!T1>::ClassMethod1349<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C13.B.A<(class G1_C13`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C13.B.A<(class G1_C13`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,class BaseClass0>::ClassMethod1348<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,class BaseClass0>::ClassMethod1349<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C13.B.B<(class G1_C13`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C13.B.B<(class G1_C13`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1348<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1349<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase0<(IBase0)W>(!!W inst, string exp) cil managed {
+               .maxstack 9
+               .locals init (string[] actualResults)
+               ldc.i4.s    4
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase0<(IBase0)W>(!!W inst, string exp)"
+               ldc.i4.s 4
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string IBase0::Method0()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string IBase0::Method1()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string IBase0::Method2<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string IBase0::Method3<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.T.T<T0,T1,(class IBase2`2<!!T0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.T.T<T0,T1,(class IBase2`2<!!T0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<!!T0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.T<T1,(class IBase2`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.T<T1,(class IBase2`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.A<(class IBase2`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.A<(class IBase2`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.B<(class IBase2`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.B<(class IBase2`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.T<T1,(class IBase2`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.T<T1,(class IBase2`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.A<(class IBase2`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.A<(class IBase2`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.B<(class IBase2`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.B<(class IBase2`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method public hidebysig static void MethodCallingTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Method Calling Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1085`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1349<object>()
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1348<object>()
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method5()
+               ldstr "G1_C13::Method5.4873()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method4()
+               ldstr "G3_C1085::Method4.14217()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G3_C1085::Method4.MI.14218()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G3_C1085::Method5.MI.14220()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G3_C1085::Method4.MI.14218()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G3_C1085::Method5.MI.14220()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1399<object>()
+               ldstr "G3_C1085::ClassMethod1399.MI.14225<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1398<object>()
+               ldstr "G3_C1085::ClassMethod1398.MI.14224<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1397()
+               ldstr "G2_C40::ClassMethod1397.5126()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method7<object>()
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method3<object>()
+               ldstr "G2_C40::Method3.5122<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method2<object>()
+               ldstr "G2_C40::Method2.5120<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method1()
+               ldstr "G2_C40::Method1.5118()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method0()
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1349<object>()
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1348<object>()
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method6<object>()
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method5()
+               ldstr "G1_C13::Method5.4873()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method4()
+               ldstr "G3_C1085::Method4.14217()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string IBase0::Method0()
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method1()
+               ldstr "G2_C40::Method1.MI.5119()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method2<object>()
+               ldstr "G2_C40::Method2.MI.5121<System.Object>()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method3<object>()
+               ldstr "G2_C40::Method3.MI.5123<System.Object>()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::ClassMethod3565()
+               ldstr "G3_C1085::ClassMethod3565.14223()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::ClassMethod3564()
+               ldstr "G3_C1085::ClassMethod3564.14222()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::Method6<object>()
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::Method5()
+               ldstr "G3_C1085::Method5.14219()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::Method4()
+               ldstr "G3_C1085::Method4.14217()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::ClassMethod1399<object>()
+               ldstr "G3_C1085::ClassMethod1399.MI.14225<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::ClassMethod1398<object>()
+               ldstr "G3_C1085::ClassMethod1398.MI.14224<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::ClassMethod1397()
+               ldstr "G2_C40::ClassMethod1397.5126()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::Method7<object>()
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::Method3<object>()
+               ldstr "G2_C40::Method3.5122<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::Method2<object>()
+               ldstr "G2_C40::Method2.5120<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::Method1()
+               ldstr "G2_C40::Method1.5118()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::Method0()
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::ClassMethod1349<object>()
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass0>
+               callvirt instance string class G3_C1085`1<class BaseClass0>::ClassMethod1348<object>()
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G3_C1085`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1349<object>()
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1348<object>()
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method5()
+               ldstr "G1_C13::Method5.4873()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method4()
+               ldstr "G3_C1085::Method4.14217()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G3_C1085::Method4.MI.14218()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G3_C1085::Method5.MI.14220()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G3_C1085::Method4.MI.14218()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G3_C1085::Method5.MI.14220()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1399<object>()
+               ldstr "G3_C1085::ClassMethod1399.MI.14225<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1398<object>()
+               ldstr "G3_C1085::ClassMethod1398.MI.14224<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1397()
+               ldstr "G2_C40::ClassMethod1397.5126()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method7<object>()
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method3<object>()
+               ldstr "G2_C40::Method3.5122<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method2<object>()
+               ldstr "G2_C40::Method2.5120<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method1()
+               ldstr "G2_C40::Method1.5118()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method0()
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1349<object>()
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1348<object>()
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method6<object>()
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method5()
+               ldstr "G1_C13::Method5.4873()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method4()
+               ldstr "G3_C1085::Method4.14217()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string IBase0::Method0()
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method1()
+               ldstr "G2_C40::Method1.MI.5119()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method2<object>()
+               ldstr "G2_C40::Method2.MI.5121<System.Object>()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method3<object>()
+               ldstr "G2_C40::Method3.MI.5123<System.Object>()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::ClassMethod3565()
+               ldstr "G3_C1085::ClassMethod3565.14223()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::ClassMethod3564()
+               ldstr "G3_C1085::ClassMethod3564.14222()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::Method6<object>()
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::Method5()
+               ldstr "G3_C1085::Method5.14219()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::Method4()
+               ldstr "G3_C1085::Method4.14217()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::ClassMethod1399<object>()
+               ldstr "G3_C1085::ClassMethod1399.MI.14225<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::ClassMethod1398<object>()
+               ldstr "G3_C1085::ClassMethod1398.MI.14224<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::ClassMethod1397()
+               ldstr "G2_C40::ClassMethod1397.5126()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::Method7<object>()
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::Method3<object>()
+               ldstr "G2_C40::Method3.5122<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::Method2<object>()
+               ldstr "G2_C40::Method2.5120<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::Method1()
+               ldstr "G2_C40::Method1.5118()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::Method0()
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::ClassMethod1349<object>()
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1085`1<class BaseClass1>
+               callvirt instance string class G3_C1085`1<class BaseClass1>::ClassMethod1348<object>()
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C40::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1349<object>()
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1348<object>()
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               ldstr "G1_C13::Method6.4875<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method5()
+               ldstr "G1_C13::Method5.4873()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method4()
+               ldstr "G1_C13::Method4.4872()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C13::Method4.4872()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C13::Method5.MI.4874()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C13::Method6.4875<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C13::Method4.4872()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C13::Method5.MI.4874()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C13::Method6.4875<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1399<object>()
+               ldstr "G2_C40::ClassMethod1399.5128<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1398<object>()
+               ldstr "G2_C40::ClassMethod1398.5127<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1397()
+               ldstr "G2_C40::ClassMethod1397.5126()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method7<object>()
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method3<object>()
+               ldstr "G2_C40::Method3.5122<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method2<object>()
+               ldstr "G2_C40::Method2.5120<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method1()
+               ldstr "G2_C40::Method1.5118()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method0()
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1349<object>()
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::ClassMethod1348<object>()
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method6<object>()
+               ldstr "G1_C13::Method6.4875<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method5()
+               ldstr "G1_C13::Method5.4873()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C40
+               callvirt instance string class G2_C40::Method4()
+               ldstr "G1_C13::Method4.4872()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string IBase0::Method0()
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "IBase0 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method1()
+               ldstr "G2_C40::Method1.MI.5119()"
+               ldstr "IBase0 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method2<object>()
+               ldstr "G2_C40::Method2.MI.5121<System.Object>()"
+               ldstr "IBase0 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method3<object>()
+               ldstr "G2_C40::Method3.MI.5123<System.Object>()"
+               ldstr "IBase0 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void ConstrainedCallsTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Constrained Calls Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1085`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G3_C1085::Method4.14217()#G1_C13::Method5.4873()#G3_C1085::Method6.14221<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G1_C13.T.T<class BaseClass1,class BaseClass1,class G3_C1085`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G3_C1085::Method4.14217()#G1_C13::Method5.4873()#G3_C1085::Method6.14221<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G1_C13.B.T<class BaseClass1,class G3_C1085`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G3_C1085::Method4.14217()#G1_C13::Method5.4873()#G3_C1085::Method6.14221<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G1_C13.B.B<class G3_C1085`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G3_C1085`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G3_C1085`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G3_C1085`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1085::Method4.MI.14218()#G3_C1085::Method5.MI.14220()#G3_C1085::Method6.14221<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G3_C1085`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1085::Method4.MI.14218()#G3_C1085::Method5.MI.14220()#G3_C1085::Method6.14221<System.Object>()#"
+               call void Framework::M.IBase1.B<class G3_C1085`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G3_C1085`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G3_C1085`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G3_C1085`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1085::Method4.MI.14218()#G3_C1085::Method5.MI.14220()#G3_C1085::Method6.14221<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G3_C1085`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1085::Method4.MI.14218()#G3_C1085::Method5.MI.14220()#G3_C1085::Method6.14221<System.Object>()#"
+               call void Framework::M.IBase1.A<class G3_C1085`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G2_C40::ClassMethod1397.5126()#G3_C1085::ClassMethod1398.MI.14224<System.Object>()#G3_C1085::ClassMethod1399.MI.14225<System.Object>()#G2_C40::Method0.5117()#G2_C40::Method1.5118()#G2_C40::Method2.5120<System.Object>()#G2_C40::Method3.5122<System.Object>()#G3_C1085::Method4.14217()#G1_C13::Method5.4873()#G3_C1085::Method6.14221<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G2_C40<class G3_C1085`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method0.5117()#G2_C40::Method1.MI.5119()#G2_C40::Method2.MI.5121<System.Object>()#G2_C40::Method3.MI.5123<System.Object>()#"
+               call void Framework::M.IBase0<class G3_C1085`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass0,class G3_C1085`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass0,class G3_C1085`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.B.A<class G3_C1085`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G3_C1085`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G3_C1085`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G3_C1085`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G2_C40::ClassMethod1397.5126()#G3_C1085::ClassMethod1398.MI.14224<System.Object>()#G3_C1085::ClassMethod1399.MI.14225<System.Object>()#G3_C1085::ClassMethod3564.14222()#G3_C1085::ClassMethod3565.14223()#G2_C40::Method0.5117()#G2_C40::Method1.5118()#G2_C40::Method2.5120<System.Object>()#G2_C40::Method3.5122<System.Object>()#G3_C1085::Method4.14217()#G3_C1085::Method5.14219()#G3_C1085::Method6.14221<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G3_C1085.T<class BaseClass0,class G3_C1085`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G2_C40::ClassMethod1397.5126()#G3_C1085::ClassMethod1398.MI.14224<System.Object>()#G3_C1085::ClassMethod1399.MI.14225<System.Object>()#G3_C1085::ClassMethod3564.14222()#G3_C1085::ClassMethod3565.14223()#G2_C40::Method0.5117()#G2_C40::Method1.5118()#G2_C40::Method2.5120<System.Object>()#G2_C40::Method3.5122<System.Object>()#G3_C1085::Method4.14217()#G3_C1085::Method5.14219()#G3_C1085::Method6.14221<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G3_C1085.A<class G3_C1085`1<class BaseClass0>>(!!0,string)
+               newobj instance void class G3_C1085`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G3_C1085::Method4.14217()#G1_C13::Method5.4873()#G3_C1085::Method6.14221<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G1_C13.T.T<class BaseClass1,class BaseClass1,class G3_C1085`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G3_C1085::Method4.14217()#G1_C13::Method5.4873()#G3_C1085::Method6.14221<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G1_C13.B.T<class BaseClass1,class G3_C1085`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G3_C1085::Method4.14217()#G1_C13::Method5.4873()#G3_C1085::Method6.14221<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G1_C13.B.B<class G3_C1085`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G3_C1085`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G3_C1085`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G3_C1085`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1085::Method4.MI.14218()#G3_C1085::Method5.MI.14220()#G3_C1085::Method6.14221<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G3_C1085`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1085::Method4.MI.14218()#G3_C1085::Method5.MI.14220()#G3_C1085::Method6.14221<System.Object>()#"
+               call void Framework::M.IBase1.B<class G3_C1085`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G3_C1085`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G3_C1085`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G3_C1085`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1085::Method4.MI.14218()#G3_C1085::Method5.MI.14220()#G3_C1085::Method6.14221<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G3_C1085`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1085::Method4.MI.14218()#G3_C1085::Method5.MI.14220()#G3_C1085::Method6.14221<System.Object>()#"
+               call void Framework::M.IBase1.A<class G3_C1085`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G2_C40::ClassMethod1397.5126()#G3_C1085::ClassMethod1398.MI.14224<System.Object>()#G3_C1085::ClassMethod1399.MI.14225<System.Object>()#G2_C40::Method0.5117()#G2_C40::Method1.5118()#G2_C40::Method2.5120<System.Object>()#G2_C40::Method3.5122<System.Object>()#G3_C1085::Method4.14217()#G1_C13::Method5.4873()#G3_C1085::Method6.14221<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G2_C40<class G3_C1085`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method0.5117()#G2_C40::Method1.MI.5119()#G2_C40::Method2.MI.5121<System.Object>()#G2_C40::Method3.MI.5123<System.Object>()#"
+               call void Framework::M.IBase0<class G3_C1085`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass0,class G3_C1085`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass0,class G3_C1085`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.B.A<class G3_C1085`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G3_C1085`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G3_C1085`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G3_C1085`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G2_C40::ClassMethod1397.5126()#G3_C1085::ClassMethod1398.MI.14224<System.Object>()#G3_C1085::ClassMethod1399.MI.14225<System.Object>()#G3_C1085::ClassMethod3564.14222()#G3_C1085::ClassMethod3565.14223()#G2_C40::Method0.5117()#G2_C40::Method1.5118()#G2_C40::Method2.5120<System.Object>()#G2_C40::Method3.5122<System.Object>()#G3_C1085::Method4.14217()#G3_C1085::Method5.14219()#G3_C1085::Method6.14221<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G3_C1085.T<class BaseClass1,class G3_C1085`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G2_C40::ClassMethod1397.5126()#G3_C1085::ClassMethod1398.MI.14224<System.Object>()#G3_C1085::ClassMethod1399.MI.14225<System.Object>()#G3_C1085::ClassMethod3564.14222()#G3_C1085::ClassMethod3565.14223()#G2_C40::Method0.5117()#G2_C40::Method1.5118()#G2_C40::Method2.5120<System.Object>()#G2_C40::Method3.5122<System.Object>()#G3_C1085::Method4.14217()#G3_C1085::Method5.14219()#G3_C1085::Method6.14221<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G3_C1085.B<class G3_C1085`1<class BaseClass1>>(!!0,string)
+               newobj instance void class G2_C40::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G1_C13::Method4.4872()#G1_C13::Method5.4873()#G1_C13::Method6.4875<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G1_C13.T.T<class BaseClass1,class BaseClass1,class G2_C40>(!!2,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G1_C13::Method4.4872()#G1_C13::Method5.4873()#G1_C13::Method6.4875<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G1_C13.B.T<class BaseClass1,class G2_C40>(!!1,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G1_C13::Method4.4872()#G1_C13::Method5.4873()#G1_C13::Method6.4875<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G1_C13.B.B<class G2_C40>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G2_C40>(!!2,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G2_C40>(!!1,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G2_C40>(!!0,string)
+               ldloc.0
+               ldstr "G1_C13::Method4.4872()#G1_C13::Method5.MI.4874()#G1_C13::Method6.4875<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C40>(!!1,string)
+               ldloc.0
+               ldstr "G1_C13::Method4.4872()#G1_C13::Method5.MI.4874()#G1_C13::Method6.4875<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C40>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C40>(!!2,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C40>(!!1,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C40>(!!0,string)
+               ldloc.0
+               ldstr "G1_C13::Method4.4872()#G1_C13::Method5.MI.4874()#G1_C13::Method6.4875<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C40>(!!1,string)
+               ldloc.0
+               ldstr "G1_C13::Method4.4872()#G1_C13::Method5.MI.4874()#G1_C13::Method6.4875<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C40>(!!0,string)
+               ldloc.0
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()#G2_C40::ClassMethod1349.MI.5129<System.Object>()#G2_C40::ClassMethod1397.5126()#G2_C40::ClassMethod1398.5127<System.Object>()#G2_C40::ClassMethod1399.5128<System.Object>()#G2_C40::Method0.5117()#G2_C40::Method1.5118()#G2_C40::Method2.5120<System.Object>()#G2_C40::Method3.5122<System.Object>()#G1_C13::Method4.4872()#G1_C13::Method5.4873()#G1_C13::Method6.4875<System.Object>()#G2_C40::Method7.5124<System.Object>()#"
+               call void Framework::M.G2_C40<class G2_C40>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method0.5117()#G2_C40::Method1.MI.5119()#G2_C40::Method2.MI.5121<System.Object>()#G2_C40::Method3.MI.5123<System.Object>()#"
+               call void Framework::M.IBase0<class G2_C40>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass0,class G2_C40>(!!2,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass0,class G2_C40>(!!1,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.B.A<class G2_C40>(!!0,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C40>(!!2,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C40>(!!1,string)
+               ldloc.0
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C40>(!!0,string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void StructConstrainedInterfaceCallsTest() cil managed
+       {
+               .maxstack  10
+               ldstr "===================== Struct Constrained Interface Calls Test ====================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void CalliTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Method Calli Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1085`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1349<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1348<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method5()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G1_C13::Method5.4873()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method4()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method4.14217()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method4.MI.14218()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method5.MI.14220()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method4.MI.14218()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method5.MI.14220()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1399<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::ClassMethod1399.MI.14225<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1398<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::ClassMethod1398.MI.14224<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1397()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::ClassMethod1397.5126()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method3<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method3.5122<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method2<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method2.5120<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method1()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method1.5118()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method0()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1349<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1348<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method6<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method5()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G1_C13::Method5.4873()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method4()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method4.14217()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method0()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method1()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method1.MI.5119()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method2<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method2.MI.5121<System.Object>()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method3<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method3.MI.5123<System.Object>()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::ClassMethod3565()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::ClassMethod3565.14223()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::ClassMethod3564()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::ClassMethod3564.14222()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method5.14219()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::Method4.14217()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::ClassMethod1399<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::ClassMethod1399.MI.14225<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::ClassMethod1398<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G3_C1085::ClassMethod1398.MI.14224<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::ClassMethod1397()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::ClassMethod1397.5126()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::Method3<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method3.5122<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::Method2<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method2.5120<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::Method1()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method1.5118()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::Method0()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::ClassMethod1349<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass0>::ClassMethod1348<object>()
+               calli default string(class G3_C1085`1<class BaseClass0>)
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass0> on type class G3_C1085`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G3_C1085`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1349<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1348<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method5()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G1_C13::Method5.4873()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method4()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method4.14217()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method4.MI.14218()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method5.MI.14220()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method4.MI.14218()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method5.MI.14220()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1399<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::ClassMethod1399.MI.14225<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1398<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::ClassMethod1398.MI.14224<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1397()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::ClassMethod1397.5126()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method3<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method3.5122<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method2<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method2.5120<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method1()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method1.5118()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method0()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1349<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1348<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method6<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method5()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G1_C13::Method5.4873()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method4()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method4.14217()"
+               ldstr "class G2_C40 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method0()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method1()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method1.MI.5119()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method2<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method2.MI.5121<System.Object>()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method3<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method3.MI.5123<System.Object>()"
+               ldstr "IBase0 on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::ClassMethod3565()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::ClassMethod3565.14223()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::ClassMethod3564()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::ClassMethod3564.14222()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method6.14221<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method5.14219()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::Method4.14217()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::ClassMethod1399<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::ClassMethod1399.MI.14225<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::ClassMethod1398<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G3_C1085::ClassMethod1398.MI.14224<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::ClassMethod1397()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::ClassMethod1397.5126()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::Method3<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method3.5122<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::Method2<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method2.5120<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::Method1()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method1.5118()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::Method0()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::ClassMethod1349<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1085`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1085`1<class BaseClass1>::ClassMethod1348<object>()
+               calli default string(class G3_C1085`1<class BaseClass1>)
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G3_C1085`1<class BaseClass1> on type class G3_C1085`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C40::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1349<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::ClassMethod1348<object>()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::Method6.4875<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method5()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::Method5.4873()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method4()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::Method4.4872()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C13`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C13`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G1_C13`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::Method4.4872()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::Method5.MI.4874()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::Method6.4875<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::Method4.4872()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::Method5.MI.4874()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::Method6.4875<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1399<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::ClassMethod1399.5128<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1398<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::ClassMethod1398.5127<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1397()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::ClassMethod1397.5126()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method7<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method7.5124<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method3<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method3.5122<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method2<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method2.5120<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method1()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method1.5118()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method0()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1349<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::ClassMethod1349.MI.5129<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::ClassMethod1348<object>()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::ClassMethod1348.4876<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method6<object>()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::Method6.4875<System.Object>()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method5()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::Method5.4873()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C40
+               ldloc.0
+               ldvirtftn instance string class G2_C40::Method4()
+               calli default string(class G2_C40)
+               ldstr "G1_C13::Method4.4872()"
+               ldstr "class G2_C40 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method0()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method0.5117()"
+               ldstr "IBase0 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method1()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method1.MI.5119()"
+               ldstr "IBase0 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method2<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method2.MI.5121<System.Object>()"
+               ldstr "IBase0 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method3<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method3.MI.5123<System.Object>()"
+               ldstr "IBase0 on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C40)
+               ldstr "G2_C40::Method7.MI.5125<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C40"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static int32  Main() cil managed
+       {
+               .entrypoint
+               .maxstack  10
+               call void Framework::MethodCallingTest()
+               call void Framework::ConstrainedCallsTest()
+               call void Framework::StructConstrainedInterfaceCallsTest()
+               call void Framework::CalliTest()
+               ldc.i4 100
+               ret
+       }
+}
diff --git a/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest613/Generated613.ilproj b/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest613/Generated613.ilproj
new file mode 100644 (file)
index 0000000..6d6bf6e
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+  <PropertyGroup>
+    <AssemblyName>Generated613</AssemblyName>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+    <OutputType>Exe</OutputType>
+    <CLRTestKind>BuildAndRun</CLRTestKind>
+    <CLRTestPriority>1</CLRTestPriority>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="Generated613.il" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Include="..\app.config" />
+  </ItemGroup>
+  
+  <ItemGroup>
+    <ProjectReference Include="..\TestFramework\TestFramework.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
diff --git a/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest614/Generated614.il b/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest614/Generated614.il
new file mode 100644 (file)
index 0000000..7776354
--- /dev/null
@@ -0,0 +1,2823 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+.assembly extern mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) .ver 4:0:0:0 }
+.assembly extern TestFramework { .publickeytoken = ( B0 3F 5F 7F 11 D5 0A 3A )  }
+
+//TYPES IN FORWARDER ASSEMBLIES:
+
+//TEST ASSEMBLY:
+.assembly Generated614 { .hash algorithm 0x00008004 }
+.module Generated614.exe
+
+.class public BaseClass0 
+{
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void [mscorlib]System.Object::.ctor()
+               ret
+       }
+}
+.class public BaseClass1 
+               extends BaseClass0
+{
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void BaseClass0::.ctor()
+               ret
+       }
+}
+.class public G3_C1086`1<T0> 
+               extends G2_C47
+               implements class IBase1`1<!T0> 
+{
+       .method public hidebysig virtual instance string Method4() cil managed noinlining { 
+               ldstr "G3_C1086::Method4.14226()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<T0>.Method4'() cil managed noinlining { 
+               .override method instance string class IBase1`1<!T0>::Method4()
+               ldstr "G3_C1086::Method4.MI.14227()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method5() cil managed noinlining { 
+               ldstr "G3_C1086::Method5.14228()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method6<M0>() cil managed noinlining { 
+               ldstr "G3_C1086::Method6.14229<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod3566() cil managed noinlining { 
+               ldstr "G3_C1086::ClassMethod3566.14230()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod3567<M0>() cil managed noinlining { 
+               ldstr "G3_C1086::ClassMethod3567.14231<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod3568<M0>() cil managed noinlining { 
+               ldstr "G3_C1086::ClassMethod3568.14232<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void G2_C47::.ctor()
+               ret
+       }
+}
+.class public G2_C47 
+               extends class G1_C15`2<class BaseClass1,class BaseClass1>
+               implements class IBase1`1<class BaseClass1>, IBase0 
+{
+       .method public hidebysig newslot virtual instance string Method4() cil managed noinlining { 
+               ldstr "G2_C47::Method4.5178()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method4'() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G2_C47::Method4.MI.5179()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method5() cil managed noinlining { 
+               ldstr "G2_C47::Method5.5180()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method5'() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G2_C47::Method5.MI.5181()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method6<M0>() cil managed noinlining { 
+               ldstr "G2_C47::Method6.5182<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method6'<M0>() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method6<[1]>()
+               ldstr "G2_C47::Method6.MI.5183<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig virtual instance string Method0() cil managed noinlining { 
+               ldstr "G2_C47::Method0.5184()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase0.Method0'() cil managed noinlining { 
+               .override method instance string IBase0::Method0()
+               ldstr "G2_C47::Method0.MI.5185()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method1() cil managed noinlining { 
+               ldstr "G2_C47::Method1.5186()"
+               ret
+       }
+       .method public hidebysig virtual instance string Method2<M0>() cil managed noinlining { 
+               ldstr "G2_C47::Method2.5187<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase0.Method2'<M0>() cil managed noinlining { 
+               .override method instance string IBase0::Method2<[1]>()
+               ldstr "G2_C47::Method2.MI.5188<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method3<M0>() cil managed noinlining { 
+               ldstr "G2_C47::Method3.5189<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase0.Method3'<M0>() cil managed noinlining { 
+               .override method instance string IBase0::Method3<[1]>()
+               ldstr "G2_C47::Method3.MI.5190<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1411<M0>() cil managed noinlining { 
+               ldstr "G2_C47::ClassMethod1411.5191<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1412<M0>() cil managed noinlining { 
+               ldstr "G2_C47::ClassMethod1412.5192<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void class G1_C15`2<class BaseClass1,class BaseClass1>::.ctor()
+               ret
+       }
+}
+.class interface public abstract IBase1`1<+T0> 
+{
+       .method public hidebysig newslot abstract virtual instance string Method4() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method5() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method6<M0>() cil managed { }
+}
+.class public abstract G1_C15`2<T0, T1> 
+               implements class IBase2`2<!T1,!T1>, class IBase1`1<class BaseClass0> 
+{
+       .method public hidebysig newslot virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G1_C15::Method7.4885<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase2<T1,T1>.Method7'<M0>() cil managed noinlining { 
+               .override method instance string class IBase2`2<!T1,!T1>::Method7<[1]>()
+               ldstr "G1_C15::Method7.MI.4886<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig virtual instance string Method4() cil managed noinlining { 
+               ldstr "G1_C15::Method4.4887()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass0>.Method4'() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C15::Method4.MI.4888()"
+               ret
+       }
+       .method public hidebysig virtual instance string Method5() cil managed noinlining { 
+               ldstr "G1_C15::Method5.4889()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass0>.Method5'() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C15::Method5.MI.4890()"
+               ret
+       }
+       .method public hidebysig virtual instance string Method6<M0>() cil managed noinlining { 
+               ldstr "G1_C15::Method6.4891<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass0>.Method6'<M0>() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass0>::Method6<[1]>()
+               ldstr "G1_C15::Method6.MI.4892<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void [mscorlib]System.Object::.ctor()
+               ret
+       }
+}
+.class interface public abstract IBase0 
+{
+       .method public hidebysig newslot abstract virtual instance string Method0() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method1() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method2<M0>() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method3<M0>() cil managed { }
+}
+.class interface public abstract IBase2`2<+T0, -T1> 
+{
+       .method public hidebysig newslot abstract virtual instance string Method7<M0>() cil managed { }
+}
+.class private auto ansi beforefieldinit Framework {
+       .method static void M.BaseClass0<(BaseClass0)W>(!!W inst, string exp) cil managed {
+               .maxstack 5
+               .locals init (string[] actualResults)
+               ldc.i4.s    0
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.BaseClass0<(BaseClass0)W>(!!W inst, string exp)"
+               ldc.i4.s 0
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.BaseClass1<(BaseClass1)W>(!!W inst, string exp) cil managed {
+               .maxstack 5
+               .locals init (string[] actualResults)
+               ldc.i4.s    0
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.BaseClass1<(BaseClass1)W>(!!W inst, string exp)"
+               ldc.i4.s 0
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1086.T<T0,(class G3_C1086`1<!!T0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 18
+               .locals init (string[] actualResults)
+               ldc.i4.s    13
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1086.T<T0,(class G3_C1086`1<!!T0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 13
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::ClassMethod1411<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::ClassMethod1412<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::ClassMethod3566()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::ClassMethod3567<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::ClassMethod3568<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::Method0()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::Method1()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::Method2<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     8
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::Method3<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     9
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     10
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     11
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     12
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<!!T0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1086.A<(class G3_C1086`1<class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 18
+               .locals init (string[] actualResults)
+               ldc.i4.s    13
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1086.A<(class G3_C1086`1<class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 13
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::ClassMethod1411<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::ClassMethod1412<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::ClassMethod3566()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::ClassMethod3567<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::ClassMethod3568<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::Method0()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::Method1()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::Method2<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     8
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::Method3<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     9
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     10
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     11
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     12
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1086.B<(class G3_C1086`1<class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 18
+               .locals init (string[] actualResults)
+               ldc.i4.s    13
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1086.B<(class G3_C1086`1<class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 13
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::ClassMethod1411<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::ClassMethod1412<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::ClassMethod3566()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::ClassMethod3567<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::ClassMethod3568<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::Method0()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::Method1()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::Method2<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     8
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::Method3<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     9
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     10
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     11
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     12
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1086`1<class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C47<(G2_C47)W>(!!W inst, string exp) cil managed {
+               .maxstack 15
+               .locals init (string[] actualResults)
+               ldc.i4.s    10
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C47<(G2_C47)W>(!!W inst, string exp)"
+               ldc.i4.s 10
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C47::ClassMethod1411<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C47::ClassMethod1412<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C47::Method0()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C47::Method1()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C47::Method2<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C47::Method3<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C47::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C47::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     8
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C47::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     9
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G2_C47::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.T<T0,(class IBase1`1<!!T0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.T<T0,(class IBase1`1<!!T0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.A<(class IBase1`1<class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.A<(class IBase1`1<class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.B<(class IBase1`1<class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.B<(class IBase1`1<class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C15.T.T<T0,T1,(class G1_C15`2<!!T0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 9
+               .locals init (string[] actualResults)
+               ldc.i4.s    4
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C15.T.T<T0,T1,(class G1_C15`2<!!T0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 4
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<!!T0,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<!!T0,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<!!T0,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<!!T0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C15.A.T<T1,(class G1_C15`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 9
+               .locals init (string[] actualResults)
+               ldc.i4.s    4
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C15.A.T<T1,(class G1_C15`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 4
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass0,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass0,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass0,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C15.A.A<(class G1_C15`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 9
+               .locals init (string[] actualResults)
+               ldc.i4.s    4
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C15.A.A<(class G1_C15`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 4
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass0,class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass0,class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C15.A.B<(class G1_C15`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 9
+               .locals init (string[] actualResults)
+               ldc.i4.s    4
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C15.A.B<(class G1_C15`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 4
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass0,class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass0,class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C15.B.T<T1,(class G1_C15`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 9
+               .locals init (string[] actualResults)
+               ldc.i4.s    4
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C15.B.T<T1,(class G1_C15`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 4
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass1,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass1,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass1,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass1,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C15.B.A<(class G1_C15`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 9
+               .locals init (string[] actualResults)
+               ldc.i4.s    4
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C15.B.A<(class G1_C15`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 4
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass1,class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass1,class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C15.B.B<(class G1_C15`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 9
+               .locals init (string[] actualResults)
+               ldc.i4.s    4
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C15.B.B<(class G1_C15`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 4
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase0<(IBase0)W>(!!W inst, string exp) cil managed {
+               .maxstack 9
+               .locals init (string[] actualResults)
+               ldc.i4.s    4
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase0<(IBase0)W>(!!W inst, string exp)"
+               ldc.i4.s 4
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string IBase0::Method0()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string IBase0::Method1()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string IBase0::Method2<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string IBase0::Method3<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.T.T<T0,T1,(class IBase2`2<!!T0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.T.T<T0,T1,(class IBase2`2<!!T0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<!!T0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.T<T1,(class IBase2`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.T<T1,(class IBase2`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.A<(class IBase2`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.A<(class IBase2`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.B<(class IBase2`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.B<(class IBase2`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.T<T1,(class IBase2`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.T<T1,(class IBase2`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.A<(class IBase2`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.A<(class IBase2`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.B<(class IBase2`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.B<(class IBase2`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method public hidebysig static void MethodCallingTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Method Calling Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1086`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               ldstr "G1_C15::Method6.4891<System.Object>()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method5()
+               ldstr "G1_C15::Method5.4889()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method4()
+               ldstr "G1_C15::Method4.4887()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G3_C1086::Method4.MI.14227()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G3_C1086::Method5.14228()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G3_C1086::Method6.14229<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::ClassMethod1412<object>()
+               ldstr "G2_C47::ClassMethod1412.5192<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::ClassMethod1411<object>()
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method3<object>()
+               ldstr "G2_C47::Method3.5189<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method2<object>()
+               ldstr "G2_C47::Method2.5187<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method1()
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method0()
+               ldstr "G2_C47::Method0.5184()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method6<object>()
+               ldstr "G2_C47::Method6.5182<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method5()
+               ldstr "G2_C47::Method5.5180()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method4()
+               ldstr "G3_C1086::Method4.14226()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method7<object>()
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G2_C47::Method4.MI.5179()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G2_C47::Method5.MI.5181()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G2_C47::Method6.MI.5183<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string IBase0::Method0()
+               ldstr "G2_C47::Method0.MI.5185()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method1()
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method2<object>()
+               ldstr "G2_C47::Method2.MI.5188<System.Object>()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method3<object>()
+               ldstr "G2_C47::Method3.MI.5190<System.Object>()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::ClassMethod3568<object>()
+               ldstr "G3_C1086::ClassMethod3568.14232<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::ClassMethod3567<object>()
+               ldstr "G3_C1086::ClassMethod3567.14231<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::ClassMethod3566()
+               ldstr "G3_C1086::ClassMethod3566.14230()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::Method6<object>()
+               ldstr "G3_C1086::Method6.14229<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::Method5()
+               ldstr "G3_C1086::Method5.14228()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::Method4()
+               ldstr "G3_C1086::Method4.14226()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::ClassMethod1412<object>()
+               ldstr "G2_C47::ClassMethod1412.5192<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::ClassMethod1411<object>()
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::Method3<object>()
+               ldstr "G2_C47::Method3.5189<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::Method2<object>()
+               ldstr "G2_C47::Method2.5187<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::Method1()
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::Method0()
+               ldstr "G2_C47::Method0.5184()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass0>
+               callvirt instance string class G3_C1086`1<class BaseClass0>::Method7<object>()
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G3_C1086`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               ldstr "G1_C15::Method6.4891<System.Object>()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method5()
+               ldstr "G1_C15::Method5.4889()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method4()
+               ldstr "G1_C15::Method4.4887()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G3_C1086::Method4.MI.14227()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G3_C1086::Method5.14228()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G3_C1086::Method6.14229<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::ClassMethod1412<object>()
+               ldstr "G2_C47::ClassMethod1412.5192<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::ClassMethod1411<object>()
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method3<object>()
+               ldstr "G2_C47::Method3.5189<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method2<object>()
+               ldstr "G2_C47::Method2.5187<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method1()
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method0()
+               ldstr "G2_C47::Method0.5184()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method6<object>()
+               ldstr "G2_C47::Method6.5182<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method5()
+               ldstr "G2_C47::Method5.5180()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method4()
+               ldstr "G3_C1086::Method4.14226()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method7<object>()
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G3_C1086::Method4.MI.14227()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G3_C1086::Method5.14228()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G3_C1086::Method6.14229<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string IBase0::Method0()
+               ldstr "G2_C47::Method0.MI.5185()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method1()
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method2<object>()
+               ldstr "G2_C47::Method2.MI.5188<System.Object>()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method3<object>()
+               ldstr "G2_C47::Method3.MI.5190<System.Object>()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::ClassMethod3568<object>()
+               ldstr "G3_C1086::ClassMethod3568.14232<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::ClassMethod3567<object>()
+               ldstr "G3_C1086::ClassMethod3567.14231<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::ClassMethod3566()
+               ldstr "G3_C1086::ClassMethod3566.14230()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::Method6<object>()
+               ldstr "G3_C1086::Method6.14229<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::Method5()
+               ldstr "G3_C1086::Method5.14228()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::Method4()
+               ldstr "G3_C1086::Method4.14226()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::ClassMethod1412<object>()
+               ldstr "G2_C47::ClassMethod1412.5192<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::ClassMethod1411<object>()
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::Method3<object>()
+               ldstr "G2_C47::Method3.5189<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::Method2<object>()
+               ldstr "G2_C47::Method2.5187<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::Method1()
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::Method0()
+               ldstr "G2_C47::Method0.5184()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1086`1<class BaseClass1>
+               callvirt instance string class G3_C1086`1<class BaseClass1>::Method7<object>()
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C47::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               ldstr "G1_C15::Method6.4891<System.Object>()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method5()
+               ldstr "G1_C15::Method5.4889()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method4()
+               ldstr "G1_C15::Method4.4887()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G2_C47::Method4.MI.5179()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G2_C47::Method5.MI.5181()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G2_C47::Method6.MI.5183<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::ClassMethod1412<object>()
+               ldstr "G2_C47::ClassMethod1412.5192<System.Object>()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::ClassMethod1411<object>()
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method3<object>()
+               ldstr "G2_C47::Method3.5189<System.Object>()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method2<object>()
+               ldstr "G2_C47::Method2.5187<System.Object>()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method1()
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method0()
+               ldstr "G2_C47::Method0.5184()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method6<object>()
+               ldstr "G2_C47::Method6.5182<System.Object>()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method5()
+               ldstr "G2_C47::Method5.5180()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method4()
+               ldstr "G2_C47::Method4.5178()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C47
+               callvirt instance string class G2_C47::Method7<object>()
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G2_C47::Method4.MI.5179()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G2_C47::Method5.MI.5181()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G2_C47::Method6.MI.5183<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string IBase0::Method0()
+               ldstr "G2_C47::Method0.MI.5185()"
+               ldstr "IBase0 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method1()
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "IBase0 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method2<object>()
+               ldstr "G2_C47::Method2.MI.5188<System.Object>()"
+               ldstr "IBase0 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string IBase0::Method3<object>()
+               ldstr "G2_C47::Method3.MI.5190<System.Object>()"
+               ldstr "IBase0 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void ConstrainedCallsTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Constrained Calls Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1086`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C15::Method4.4887()#G1_C15::Method5.4889()#G1_C15::Method6.4891<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G1_C15.T.T<class BaseClass1,class BaseClass1,class G3_C1086`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C15::Method4.4887()#G1_C15::Method5.4889()#G1_C15::Method6.4891<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G1_C15.B.T<class BaseClass1,class G3_C1086`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C15::Method4.4887()#G1_C15::Method5.4889()#G1_C15::Method6.4891<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G1_C15.B.B<class G3_C1086`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G3_C1086`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G3_C1086`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G3_C1086`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1086::Method4.MI.14227()#G3_C1086::Method5.14228()#G3_C1086::Method6.14229<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G3_C1086`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1086::Method4.MI.14227()#G3_C1086::Method5.14228()#G3_C1086::Method6.14229<System.Object>()#"
+               call void Framework::M.IBase1.A<class G3_C1086`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G3_C1086`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G3_C1086`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G3_C1086`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()#G2_C47::ClassMethod1412.5192<System.Object>()#G2_C47::Method0.5184()#G2_C47::Method1.5186()#G2_C47::Method2.5187<System.Object>()#G2_C47::Method3.5189<System.Object>()#G3_C1086::Method4.14226()#G2_C47::Method5.5180()#G2_C47::Method6.5182<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G2_C47<class G3_C1086`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C47::Method4.MI.5179()#G2_C47::Method5.MI.5181()#G2_C47::Method6.MI.5183<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G3_C1086`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C47::Method4.MI.5179()#G2_C47::Method5.MI.5181()#G2_C47::Method6.MI.5183<System.Object>()#"
+               call void Framework::M.IBase1.B<class G3_C1086`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C47::Method0.MI.5185()#G2_C47::Method1.5186()#G2_C47::Method2.MI.5188<System.Object>()#G2_C47::Method3.MI.5190<System.Object>()#"
+               call void Framework::M.IBase0<class G3_C1086`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()#G2_C47::ClassMethod1412.5192<System.Object>()#G3_C1086::ClassMethod3566.14230()#G3_C1086::ClassMethod3567.14231<System.Object>()#G3_C1086::ClassMethod3568.14232<System.Object>()#G2_C47::Method0.5184()#G2_C47::Method1.5186()#G2_C47::Method2.5187<System.Object>()#G2_C47::Method3.5189<System.Object>()#G3_C1086::Method4.14226()#G3_C1086::Method5.14228()#G3_C1086::Method6.14229<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G3_C1086.T<class BaseClass0,class G3_C1086`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()#G2_C47::ClassMethod1412.5192<System.Object>()#G3_C1086::ClassMethod3566.14230()#G3_C1086::ClassMethod3567.14231<System.Object>()#G3_C1086::ClassMethod3568.14232<System.Object>()#G2_C47::Method0.5184()#G2_C47::Method1.5186()#G2_C47::Method2.5187<System.Object>()#G2_C47::Method3.5189<System.Object>()#G3_C1086::Method4.14226()#G3_C1086::Method5.14228()#G3_C1086::Method6.14229<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G3_C1086.A<class G3_C1086`1<class BaseClass0>>(!!0,string)
+               newobj instance void class G3_C1086`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C15::Method4.4887()#G1_C15::Method5.4889()#G1_C15::Method6.4891<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G1_C15.T.T<class BaseClass1,class BaseClass1,class G3_C1086`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C15::Method4.4887()#G1_C15::Method5.4889()#G1_C15::Method6.4891<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G1_C15.B.T<class BaseClass1,class G3_C1086`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C15::Method4.4887()#G1_C15::Method5.4889()#G1_C15::Method6.4891<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G1_C15.B.B<class G3_C1086`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G3_C1086`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G3_C1086`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G3_C1086`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1086::Method4.MI.14227()#G3_C1086::Method5.14228()#G3_C1086::Method6.14229<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G3_C1086`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1086::Method4.MI.14227()#G3_C1086::Method5.14228()#G3_C1086::Method6.14229<System.Object>()#"
+               call void Framework::M.IBase1.A<class G3_C1086`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G3_C1086`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G3_C1086`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G3_C1086`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()#G2_C47::ClassMethod1412.5192<System.Object>()#G2_C47::Method0.5184()#G2_C47::Method1.5186()#G2_C47::Method2.5187<System.Object>()#G2_C47::Method3.5189<System.Object>()#G3_C1086::Method4.14226()#G2_C47::Method5.5180()#G2_C47::Method6.5182<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G2_C47<class G3_C1086`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1086::Method4.MI.14227()#G3_C1086::Method5.14228()#G3_C1086::Method6.14229<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G3_C1086`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1086::Method4.MI.14227()#G3_C1086::Method5.14228()#G3_C1086::Method6.14229<System.Object>()#"
+               call void Framework::M.IBase1.B<class G3_C1086`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C47::Method0.MI.5185()#G2_C47::Method1.5186()#G2_C47::Method2.MI.5188<System.Object>()#G2_C47::Method3.MI.5190<System.Object>()#"
+               call void Framework::M.IBase0<class G3_C1086`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()#G2_C47::ClassMethod1412.5192<System.Object>()#G3_C1086::ClassMethod3566.14230()#G3_C1086::ClassMethod3567.14231<System.Object>()#G3_C1086::ClassMethod3568.14232<System.Object>()#G2_C47::Method0.5184()#G2_C47::Method1.5186()#G2_C47::Method2.5187<System.Object>()#G2_C47::Method3.5189<System.Object>()#G3_C1086::Method4.14226()#G3_C1086::Method5.14228()#G3_C1086::Method6.14229<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G3_C1086.T<class BaseClass1,class G3_C1086`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()#G2_C47::ClassMethod1412.5192<System.Object>()#G3_C1086::ClassMethod3566.14230()#G3_C1086::ClassMethod3567.14231<System.Object>()#G3_C1086::ClassMethod3568.14232<System.Object>()#G2_C47::Method0.5184()#G2_C47::Method1.5186()#G2_C47::Method2.5187<System.Object>()#G2_C47::Method3.5189<System.Object>()#G3_C1086::Method4.14226()#G3_C1086::Method5.14228()#G3_C1086::Method6.14229<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G3_C1086.B<class G3_C1086`1<class BaseClass1>>(!!0,string)
+               newobj instance void class G2_C47::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C15::Method4.4887()#G1_C15::Method5.4889()#G1_C15::Method6.4891<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G1_C15.T.T<class BaseClass1,class BaseClass1,class G2_C47>(!!2,string)
+               ldloc.0
+               ldstr "G1_C15::Method4.4887()#G1_C15::Method5.4889()#G1_C15::Method6.4891<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G1_C15.B.T<class BaseClass1,class G2_C47>(!!1,string)
+               ldloc.0
+               ldstr "G1_C15::Method4.4887()#G1_C15::Method5.4889()#G1_C15::Method6.4891<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G1_C15.B.B<class G2_C47>(!!0,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G2_C47>(!!2,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G2_C47>(!!1,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G2_C47>(!!0,string)
+               ldloc.0
+               ldstr "G2_C47::Method4.MI.5179()#G2_C47::Method5.MI.5181()#G2_C47::Method6.MI.5183<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C47>(!!1,string)
+               ldloc.0
+               ldstr "G2_C47::Method4.MI.5179()#G2_C47::Method5.MI.5181()#G2_C47::Method6.MI.5183<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C47>(!!0,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C47>(!!2,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C47>(!!1,string)
+               ldloc.0
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C47>(!!0,string)
+               ldloc.0
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()#G2_C47::ClassMethod1412.5192<System.Object>()#G2_C47::Method0.5184()#G2_C47::Method1.5186()#G2_C47::Method2.5187<System.Object>()#G2_C47::Method3.5189<System.Object>()#G2_C47::Method4.5178()#G2_C47::Method5.5180()#G2_C47::Method6.5182<System.Object>()#G1_C15::Method7.4885<System.Object>()#"
+               call void Framework::M.G2_C47<class G2_C47>(!!0,string)
+               ldloc.0
+               ldstr "G2_C47::Method4.MI.5179()#G2_C47::Method5.MI.5181()#G2_C47::Method6.MI.5183<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C47>(!!1,string)
+               ldloc.0
+               ldstr "G2_C47::Method4.MI.5179()#G2_C47::Method5.MI.5181()#G2_C47::Method6.MI.5183<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C47>(!!0,string)
+               ldloc.0
+               ldstr "G2_C47::Method0.MI.5185()#G2_C47::Method1.5186()#G2_C47::Method2.MI.5188<System.Object>()#G2_C47::Method3.MI.5190<System.Object>()#"
+               call void Framework::M.IBase0<class G2_C47>(!!0,string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void StructConstrainedInterfaceCallsTest() cil managed
+       {
+               .maxstack  10
+               ldstr "===================== Struct Constrained Interface Calls Test ====================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void CalliTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Method Calli Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1086`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G1_C15::Method6.4891<System.Object>()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method5()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G1_C15::Method5.4889()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method4()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G1_C15::Method4.4887()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G3_C1086::Method4.MI.14227()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G3_C1086::Method5.14228()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G3_C1086::Method6.14229<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::ClassMethod1412<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::ClassMethod1412.5192<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::ClassMethod1411<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method3<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method3.5189<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method2<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method2.5187<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method1()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method0()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method0.5184()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method6<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method6.5182<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method5()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method5.5180()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method4()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G3_C1086::Method4.14226()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method7<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method4.MI.5179()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method5.MI.5181()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method6.MI.5183<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method0()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method0.MI.5185()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method1()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method2<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method2.MI.5188<System.Object>()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method3<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method3.MI.5190<System.Object>()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::ClassMethod3568<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G3_C1086::ClassMethod3568.14232<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::ClassMethod3567<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G3_C1086::ClassMethod3567.14231<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::ClassMethod3566()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G3_C1086::ClassMethod3566.14230()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G3_C1086::Method6.14229<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G3_C1086::Method5.14228()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G3_C1086::Method4.14226()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::ClassMethod1412<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::ClassMethod1412.5192<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::ClassMethod1411<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::Method3<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method3.5189<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::Method2<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method2.5187<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::Method1()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::Method0()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G2_C47::Method0.5184()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1086`1<class BaseClass0>)
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass0> on type class G3_C1086`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G3_C1086`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G1_C15::Method6.4891<System.Object>()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method5()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G1_C15::Method5.4889()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method4()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G1_C15::Method4.4887()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::Method4.MI.14227()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::Method5.14228()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::Method6.14229<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::ClassMethod1412<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::ClassMethod1412.5192<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::ClassMethod1411<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method3<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method3.5189<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method2<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method2.5187<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method1()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method0()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method0.5184()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method6<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method6.5182<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method5()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method5.5180()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method4()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::Method4.14226()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method7<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G2_C47 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::Method4.MI.14227()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::Method5.14228()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::Method6.14229<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method0()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method0.MI.5185()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method1()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method2<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method2.MI.5188<System.Object>()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method3<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method3.MI.5190<System.Object>()"
+               ldstr "IBase0 on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::ClassMethod3568<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::ClassMethod3568.14232<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::ClassMethod3567<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::ClassMethod3567.14231<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::ClassMethod3566()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::ClassMethod3566.14230()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::Method6.14229<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::Method5.14228()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G3_C1086::Method4.14226()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::ClassMethod1412<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::ClassMethod1412.5192<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::ClassMethod1411<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::Method3<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method3.5189<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::Method2<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method2.5187<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::Method1()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::Method0()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G2_C47::Method0.5184()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1086`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1086`1<class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1086`1<class BaseClass1>)
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G3_C1086`1<class BaseClass1> on type class G3_C1086`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C47::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               calli default string(class G2_C47)
+               ldstr "G1_C15::Method6.4891<System.Object>()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method5()
+               calli default string(class G2_C47)
+               ldstr "G1_C15::Method5.4889()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method4()
+               calli default string(class G2_C47)
+               ldstr "G1_C15::Method4.4887()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C15`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G1_C15`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C47)
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G1_C15`2<class BaseClass1,class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C47)
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method4.MI.5179()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method5.MI.5181()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method6.MI.5183<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C47)
+               ldstr "G1_C15::Method7.MI.4886<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::ClassMethod1412<object>()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::ClassMethod1412.5192<System.Object>()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::ClassMethod1411<object>()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::ClassMethod1411.5191<System.Object>()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method3<object>()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method3.5189<System.Object>()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method2<object>()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method2.5187<System.Object>()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method1()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method0()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method0.5184()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method6<object>()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method6.5182<System.Object>()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method5()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method5.5180()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method4()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method4.5178()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C47
+               ldloc.0
+               ldvirtftn instance string class G2_C47::Method7<object>()
+               calli default string(class G2_C47)
+               ldstr "G1_C15::Method7.4885<System.Object>()"
+               ldstr "class G2_C47 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method4.MI.5179()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method5.MI.5181()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method6.MI.5183<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method0()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method0.MI.5185()"
+               ldstr "IBase0 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method1()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method1.5186()"
+               ldstr "IBase0 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method2<object>()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method2.MI.5188<System.Object>()"
+               ldstr "IBase0 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string IBase0::Method3<object>()
+               calli default string(class G2_C47)
+               ldstr "G2_C47::Method3.MI.5190<System.Object>()"
+               ldstr "IBase0 on type class G2_C47"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static int32  Main() cil managed
+       {
+               .entrypoint
+               .maxstack  10
+               call void Framework::MethodCallingTest()
+               call void Framework::ConstrainedCallsTest()
+               call void Framework::StructConstrainedInterfaceCallsTest()
+               call void Framework::CalliTest()
+               ldc.i4 100
+               ret
+       }
+}
diff --git a/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest614/Generated614.ilproj b/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest614/Generated614.ilproj
new file mode 100644 (file)
index 0000000..24494e9
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+  <PropertyGroup>
+    <AssemblyName>Generated614</AssemblyName>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+    <OutputType>Exe</OutputType>
+    <CLRTestKind>BuildAndRun</CLRTestKind>
+    <CLRTestPriority>1</CLRTestPriority>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="Generated614.il" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Include="..\app.config" />
+  </ItemGroup>
+  
+  <ItemGroup>
+    <ProjectReference Include="..\TestFramework\TestFramework.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
diff --git a/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest681/Generated681.il b/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest681/Generated681.il
new file mode 100644 (file)
index 0000000..75db3db
--- /dev/null
@@ -0,0 +1,3119 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+.assembly extern mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) .ver 4:0:0:0 }
+.assembly extern TestFramework { .publickeytoken = ( B0 3F 5F 7F 11 D5 0A 3A )  }
+
+//TYPES IN FORWARDER ASSEMBLIES:
+
+//TEST ASSEMBLY:
+.assembly Generated681 { .hash algorithm 0x00008004 }
+.module Generated681.exe
+
+.class public BaseClass0 
+{
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void [mscorlib]System.Object::.ctor()
+               ret
+       }
+}
+.class public BaseClass1 
+               extends BaseClass0
+{
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void BaseClass0::.ctor()
+               ret
+       }
+}
+.class public G3_C1153`1<T0> 
+               extends class G2_C221`2<class BaseClass0,class BaseClass1>
+               implements class IBase2`2<!T0,class BaseClass1> 
+{
+       .method public hidebysig newslot virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G3_C1153::Method7.14613<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase2<T0,class BaseClass1>.Method7'<M0>() cil managed noinlining { 
+               .override method instance string class IBase2`2<!T0,class BaseClass1>::Method7<[1]>()
+               ldstr "G3_C1153::Method7.MI.14614<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod3699<M0>() cil managed noinlining { 
+               ldstr "G3_C1153::ClassMethod3699.14615<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'G2_C221<class BaseClass0,class BaseClass1>.ClassMethod1772'() cil managed noinlining { 
+               .override method instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'G2_C221<class BaseClass0,class BaseClass1>.ClassMethod1773'<M0>() cil managed noinlining { 
+               .override method instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<[1]>()
+               ldstr "G3_C1153::ClassMethod1773.MI.14617<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void class G2_C221`2<class BaseClass0,class BaseClass1>::.ctor()
+               ret
+       }
+}
+.class public G2_C221`2<T0, T1> 
+               extends G1_C2
+               implements class IBase2`2<!T1,!T1> 
+{
+       .method public hidebysig virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G2_C221::Method7.6813<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase2<T1,T1>.Method7'<M0>() cil managed noinlining { 
+               .override method instance string class IBase2`2<!T1,!T1>::Method7<[1]>()
+               ldstr "G2_C221::Method7.MI.6814<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1772() cil managed noinlining { 
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1773<M0>() cil managed noinlining { 
+               ldstr "G2_C221::ClassMethod1773.6816<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void G1_C2::.ctor()
+               ret
+       }
+}
+.class interface public abstract IBase2`2<+T0, -T1> 
+{
+       .method public hidebysig newslot abstract virtual instance string Method7<M0>() cil managed { }
+}
+.class public abstract G1_C2 
+               implements class IBase2`2<class BaseClass0,class BaseClass0>, class IBase1`1<class BaseClass1> 
+{
+       .method public hidebysig newslot virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G1_C2::Method7.4778<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig virtual instance string Method4() cil managed noinlining { 
+               ldstr "G1_C2::Method4.4779()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method4'() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method5() cil managed noinlining { 
+               ldstr "G1_C2::Method5.4781()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method5'() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method6<M0>() cil managed noinlining { 
+               ldstr "G1_C2::Method6.4783<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method6'<M0>() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method6<[1]>()
+               ldstr "G1_C2::Method6.MI.4784<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void [mscorlib]System.Object::.ctor()
+               ret
+       }
+}
+.class interface public abstract IBase1`1<+T0> 
+{
+       .method public hidebysig newslot abstract virtual instance string Method4() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method5() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method6<M0>() cil managed { }
+}
+.class private auto ansi beforefieldinit Framework {
+       .method static void M.BaseClass0<(BaseClass0)W>(!!W inst, string exp) cil managed {
+               .maxstack 5
+               .locals init (string[] actualResults)
+               ldc.i4.s    0
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.BaseClass0<(BaseClass0)W>(!!W inst, string exp)"
+               ldc.i4.s 0
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.BaseClass1<(BaseClass1)W>(!!W inst, string exp) cil managed {
+               .maxstack 5
+               .locals init (string[] actualResults)
+               ldc.i4.s    0
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.BaseClass1<(BaseClass1)W>(!!W inst, string exp)"
+               ldc.i4.s 0
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1153.T<T0,(class G3_C1153`1<!!T0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 12
+               .locals init (string[] actualResults)
+               ldc.i4.s    7
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1153.T<T0,(class G3_C1153`1<!!T0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 7
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<!!T0>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<!!T0>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<!!T0>::ClassMethod3699<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<!!T0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<!!T0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<!!T0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<!!T0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1153.A<(class G3_C1153`1<class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 12
+               .locals init (string[] actualResults)
+               ldc.i4.s    7
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1153.A<(class G3_C1153`1<class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 7
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass0>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass0>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass0>::ClassMethod3699<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1153.B<(class G3_C1153`1<class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 12
+               .locals init (string[] actualResults)
+               ldc.i4.s    7
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1153.B<(class G3_C1153`1<class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 7
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass1>::ClassMethod3699<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1153`1<class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.T.T<T0,T1,(class G2_C221`2<!!T0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.T.T<T0,T1,(class G2_C221`2<!!T0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.A.T<T1,(class G2_C221`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.A.T<T1,(class G2_C221`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.A.A<(class G2_C221`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.A.A<(class G2_C221`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.A.B<(class G2_C221`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.A.B<(class G2_C221`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.B.T<T1,(class G2_C221`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.B.T<T1,(class G2_C221`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.B.A<(class G2_C221`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.B.A<(class G2_C221`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.B.B<(class G2_C221`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.B.B<(class G2_C221`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.T.T<T0,T1,(class IBase2`2<!!T0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.T.T<T0,T1,(class IBase2`2<!!T0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<!!T0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.T<T1,(class IBase2`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.T<T1,(class IBase2`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.A<(class IBase2`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.A<(class IBase2`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.B<(class IBase2`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.B<(class IBase2`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.T<T1,(class IBase2`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.T<T1,(class IBase2`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.A<(class IBase2`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.A<(class IBase2`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.B<(class IBase2`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.B<(class IBase2`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C2<(G1_C2)W>(!!W inst, string exp) cil managed {
+               .maxstack 9
+               .locals init (string[] actualResults)
+               ldc.i4.s    4
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C2<(G1_C2)W>(!!W inst, string exp)"
+               ldc.i4.s 4
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G1_C2::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G1_C2::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G1_C2::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G1_C2::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.T<T0,(class IBase1`1<!!T0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.T<T0,(class IBase1`1<!!T0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.A<(class IBase1`1<class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.A<(class IBase1`1<class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.B<(class IBase1`1<class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.B<(class IBase1`1<class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method public hidebysig static void MethodCallingTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Method Calling Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1153`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G3_C1153::ClassMethod1773.MI.14617<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G3_C1153`1<class BaseClass0>
+               callvirt instance string class G3_C1153`1<class BaseClass0>::ClassMethod3699<object>()
+               ldstr "G3_C1153::ClassMethod3699.14615<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1153`1<class BaseClass0>
+               callvirt instance string class G3_C1153`1<class BaseClass0>::Method7<object>()
+               ldstr "G3_C1153::Method7.14613<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1153`1<class BaseClass0>
+               callvirt instance string class G3_C1153`1<class BaseClass0>::ClassMethod1773<object>()
+               ldstr "G3_C1153::ClassMethod1773.MI.14617<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1153`1<class BaseClass0>
+               callvirt instance string class G3_C1153`1<class BaseClass0>::ClassMethod1772()
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1153`1<class BaseClass0>
+               callvirt instance string class G3_C1153`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1153`1<class BaseClass0>
+               callvirt instance string class G3_C1153`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1153`1<class BaseClass0>
+               callvirt instance string class G3_C1153`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G3_C1153`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G3_C1153::ClassMethod1773.MI.14617<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G3_C1153`1<class BaseClass1>
+               callvirt instance string class G3_C1153`1<class BaseClass1>::ClassMethod3699<object>()
+               ldstr "G3_C1153::ClassMethod3699.14615<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1153`1<class BaseClass1>
+               callvirt instance string class G3_C1153`1<class BaseClass1>::Method7<object>()
+               ldstr "G3_C1153::Method7.14613<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1153`1<class BaseClass1>
+               callvirt instance string class G3_C1153`1<class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G3_C1153::ClassMethod1773.MI.14617<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1153`1<class BaseClass1>
+               callvirt instance string class G3_C1153`1<class BaseClass1>::ClassMethod1772()
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1153`1<class BaseClass1>
+               callvirt instance string class G3_C1153`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1153`1<class BaseClass1>
+               callvirt instance string class G3_C1153`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1153`1<class BaseClass1>
+               callvirt instance string class G3_C1153`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void ConstrainedCallsTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Constrained Calls Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1153`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G3_C1153`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G3_C1153`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G3_C1153`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G3_C1153`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G3_C1153`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G3_C1153`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G3_C1153`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G3_C1153`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G3_C1153`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G3_C1153`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G3_C1153`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()#G3_C1153::ClassMethod1773.MI.14617<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass0,class BaseClass1,class G3_C1153`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()#G3_C1153::ClassMethod1773.MI.14617<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.T<class BaseClass1,class G3_C1153`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()#G3_C1153::ClassMethod1773.MI.14617<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.B<class G3_C1153`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G3_C1153`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G3_C1153`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G3_C1153`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()#G3_C1153::ClassMethod1773.MI.14617<System.Object>()#G3_C1153::ClassMethod3699.14615<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G3_C1153::Method7.14613<System.Object>()#"
+               call void Framework::M.G3_C1153.T<class BaseClass0,class G3_C1153`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()#G3_C1153::ClassMethod1773.MI.14617<System.Object>()#G3_C1153::ClassMethod3699.14615<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G3_C1153::Method7.14613<System.Object>()#"
+               call void Framework::M.G3_C1153.A<class G3_C1153`1<class BaseClass0>>(!!0,string)
+               newobj instance void class G3_C1153`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G3_C1153`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G3_C1153`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G3_C1153`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G3_C1153`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G3_C1153`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G3_C1153`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G3_C1153`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G3_C1153`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G3_C1153`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G3_C1153`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G3_C1153`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()#G3_C1153::ClassMethod1773.MI.14617<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass0,class BaseClass1,class G3_C1153`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()#G3_C1153::ClassMethod1773.MI.14617<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.T<class BaseClass1,class G3_C1153`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()#G3_C1153::ClassMethod1773.MI.14617<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.B<class G3_C1153`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G3_C1153`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G3_C1153`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G3_C1153`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()#G3_C1153::ClassMethod1773.MI.14617<System.Object>()#G3_C1153::ClassMethod3699.14615<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G3_C1153::Method7.14613<System.Object>()#"
+               call void Framework::M.G3_C1153.T<class BaseClass1,class G3_C1153`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()#G3_C1153::ClassMethod1773.MI.14617<System.Object>()#G3_C1153::ClassMethod3699.14615<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G3_C1153::Method7.14613<System.Object>()#"
+               call void Framework::M.G3_C1153.B<class G3_C1153`1<class BaseClass1>>(!!0,string)
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.A<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.B<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass1,class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.A<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass1,class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.B<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void StructConstrainedInterfaceCallsTest() cil managed
+       {
+               .maxstack  10
+               ldstr "===================== Struct Constrained Interface Calls Test ====================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void CalliTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Method Calli Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1153`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G3_C1153::ClassMethod1773.MI.14617<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass0>::ClassMethod3699<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G3_C1153::ClassMethod3699.14615<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G3_C1153::Method7.14613<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass0>::ClassMethod1773<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G3_C1153::ClassMethod1773.MI.14617<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass0>::ClassMethod1772()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1153`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G3_C1153`1<class BaseClass0> on type class G3_C1153`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G3_C1153`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G3_C1153::ClassMethod1773.MI.14617<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G3_C1153::Method7.MI.14614<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass1>::ClassMethod3699<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G3_C1153::ClassMethod3699.14615<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G3_C1153::Method7.14613<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G3_C1153::ClassMethod1773.MI.14617<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass1>::ClassMethod1772()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G3_C1153::ClassMethod1772.MI.14616()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1153`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1153`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1153`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G3_C1153`1<class BaseClass1> on type class G3_C1153`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1773<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1772()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1773<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1772()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1772()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static int32  Main() cil managed
+       {
+               .entrypoint
+               .maxstack  10
+               call void Framework::MethodCallingTest()
+               call void Framework::ConstrainedCallsTest()
+               call void Framework::StructConstrainedInterfaceCallsTest()
+               call void Framework::CalliTest()
+               ldc.i4 100
+               ret
+       }
+}
diff --git a/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest681/Generated681.ilproj b/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest681/Generated681.ilproj
new file mode 100644 (file)
index 0000000..4c0e08f
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+  <PropertyGroup>
+    <AssemblyName>Generated681</AssemblyName>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+    <OutputType>Exe</OutputType>
+    <CLRTestKind>BuildAndRun</CLRTestKind>
+    <CLRTestPriority>1</CLRTestPriority>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="Generated681.il" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Include="..\app.config" />
+  </ItemGroup>
+  
+  <ItemGroup>
+    <ProjectReference Include="..\TestFramework\TestFramework.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
diff --git a/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest682/Generated682.il b/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest682/Generated682.il
new file mode 100644 (file)
index 0000000..e7755bc
--- /dev/null
@@ -0,0 +1,3164 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+.assembly extern mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) .ver 4:0:0:0 }
+.assembly extern TestFramework { .publickeytoken = ( B0 3F 5F 7F 11 D5 0A 3A )  }
+
+//TYPES IN FORWARDER ASSEMBLIES:
+
+//TEST ASSEMBLY:
+.assembly Generated682 { .hash algorithm 0x00008004 }
+.module Generated682.exe
+
+.class public BaseClass0 
+{
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void [mscorlib]System.Object::.ctor()
+               ret
+       }
+}
+.class public BaseClass1 
+               extends BaseClass0
+{
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void BaseClass0::.ctor()
+               ret
+       }
+}
+.class public G3_C1154`1<T0> 
+               extends class G2_C221`2<class BaseClass0,!T0>
+               implements class IBase2`2<!T0,class BaseClass0> 
+{
+       .method public hidebysig newslot virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G3_C1154::Method7.14618<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase2<T0,class BaseClass0>.Method7'<M0>() cil managed noinlining { 
+               .override method instance string class IBase2`2<!T0,class BaseClass0>::Method7<[1]>()
+               ldstr "G3_C1154::Method7.MI.14619<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod3700() cil managed noinlining { 
+               ldstr "G3_C1154::ClassMethod3700.14620()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod3701<M0>() cil managed noinlining { 
+               ldstr "G3_C1154::ClassMethod3701.14621<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'G2_C221<class BaseClass0,T0>.ClassMethod1773'<M0>() cil managed noinlining { 
+               .override method instance string class G2_C221`2<class BaseClass0,!T0>::ClassMethod1773<[1]>()
+               ldstr "G3_C1154::ClassMethod1773.MI.14622<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void class G2_C221`2<class BaseClass0,!T0>::.ctor()
+               ret
+       }
+}
+.class public G2_C221`2<T0, T1> 
+               extends G1_C2
+               implements class IBase2`2<!T1,!T1> 
+{
+       .method public hidebysig virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G2_C221::Method7.6813<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase2<T1,T1>.Method7'<M0>() cil managed noinlining { 
+               .override method instance string class IBase2`2<!T1,!T1>::Method7<[1]>()
+               ldstr "G2_C221::Method7.MI.6814<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1772() cil managed noinlining { 
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1773<M0>() cil managed noinlining { 
+               ldstr "G2_C221::ClassMethod1773.6816<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void G1_C2::.ctor()
+               ret
+       }
+}
+.class interface public abstract IBase2`2<+T0, -T1> 
+{
+       .method public hidebysig newslot abstract virtual instance string Method7<M0>() cil managed { }
+}
+.class public abstract G1_C2 
+               implements class IBase2`2<class BaseClass0,class BaseClass0>, class IBase1`1<class BaseClass1> 
+{
+       .method public hidebysig newslot virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G1_C2::Method7.4778<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig virtual instance string Method4() cil managed noinlining { 
+               ldstr "G1_C2::Method4.4779()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method4'() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method5() cil managed noinlining { 
+               ldstr "G1_C2::Method5.4781()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method5'() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method6<M0>() cil managed noinlining { 
+               ldstr "G1_C2::Method6.4783<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method6'<M0>() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method6<[1]>()
+               ldstr "G1_C2::Method6.MI.4784<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void [mscorlib]System.Object::.ctor()
+               ret
+       }
+}
+.class interface public abstract IBase1`1<+T0> 
+{
+       .method public hidebysig newslot abstract virtual instance string Method4() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method5() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method6<M0>() cil managed { }
+}
+.class private auto ansi beforefieldinit Framework {
+       .method static void M.BaseClass0<(BaseClass0)W>(!!W inst, string exp) cil managed {
+               .maxstack 5
+               .locals init (string[] actualResults)
+               ldc.i4.s    0
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.BaseClass0<(BaseClass0)W>(!!W inst, string exp)"
+               ldc.i4.s 0
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.BaseClass1<(BaseClass1)W>(!!W inst, string exp) cil managed {
+               .maxstack 5
+               .locals init (string[] actualResults)
+               ldc.i4.s    0
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.BaseClass1<(BaseClass1)W>(!!W inst, string exp)"
+               ldc.i4.s 0
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1154.T<T0,(class G3_C1154`1<!!T0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 13
+               .locals init (string[] actualResults)
+               ldc.i4.s    8
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1154.T<T0,(class G3_C1154`1<!!T0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 8
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<!!T0>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<!!T0>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<!!T0>::ClassMethod3700()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<!!T0>::ClassMethod3701<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<!!T0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<!!T0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<!!T0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<!!T0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1154.A<(class G3_C1154`1<class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 13
+               .locals init (string[] actualResults)
+               ldc.i4.s    8
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1154.A<(class G3_C1154`1<class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 8
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass0>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass0>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass0>::ClassMethod3700()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass0>::ClassMethod3701<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1154.B<(class G3_C1154`1<class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 13
+               .locals init (string[] actualResults)
+               ldc.i4.s    8
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1154.B<(class G3_C1154`1<class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 8
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass1>::ClassMethod3700()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass1>::ClassMethod3701<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1154`1<class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.T.T<T0,T1,(class G2_C221`2<!!T0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.T.T<T0,T1,(class G2_C221`2<!!T0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.A.T<T1,(class G2_C221`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.A.T<T1,(class G2_C221`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.A.A<(class G2_C221`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.A.A<(class G2_C221`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.A.B<(class G2_C221`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.A.B<(class G2_C221`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.B.T<T1,(class G2_C221`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.B.T<T1,(class G2_C221`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.B.A<(class G2_C221`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.B.A<(class G2_C221`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.B.B<(class G2_C221`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.B.B<(class G2_C221`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.T.T<T0,T1,(class IBase2`2<!!T0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.T.T<T0,T1,(class IBase2`2<!!T0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<!!T0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.T<T1,(class IBase2`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.T<T1,(class IBase2`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.A<(class IBase2`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.A<(class IBase2`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.B<(class IBase2`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.B<(class IBase2`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.T<T1,(class IBase2`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.T<T1,(class IBase2`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.A<(class IBase2`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.A<(class IBase2`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.B<(class IBase2`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.B<(class IBase2`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C2<(G1_C2)W>(!!W inst, string exp) cil managed {
+               .maxstack 9
+               .locals init (string[] actualResults)
+               ldc.i4.s    4
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C2<(G1_C2)W>(!!W inst, string exp)"
+               ldc.i4.s 4
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G1_C2::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G1_C2::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G1_C2::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G1_C2::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.T<T0,(class IBase1`1<!!T0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.T<T0,(class IBase1`1<!!T0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.A<(class IBase1`1<class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.A<(class IBase1`1<class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.B<(class IBase1`1<class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.B<(class IBase1`1<class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method public hidebysig static void MethodCallingTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Method Calling Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1154`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1773<object>()
+               ldstr "G3_C1154::ClassMethod1773.MI.14622<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G3_C1154`1<class BaseClass0>
+               callvirt instance string class G3_C1154`1<class BaseClass0>::ClassMethod3701<object>()
+               ldstr "G3_C1154::ClassMethod3701.14621<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass0>
+               callvirt instance string class G3_C1154`1<class BaseClass0>::ClassMethod3700()
+               ldstr "G3_C1154::ClassMethod3700.14620()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass0>
+               callvirt instance string class G3_C1154`1<class BaseClass0>::Method7<object>()
+               ldstr "G3_C1154::Method7.14618<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass0>
+               callvirt instance string class G3_C1154`1<class BaseClass0>::ClassMethod1773<object>()
+               ldstr "G3_C1154::ClassMethod1773.MI.14622<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass0>
+               callvirt instance string class G3_C1154`1<class BaseClass0>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass0>
+               callvirt instance string class G3_C1154`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass0>
+               callvirt instance string class G3_C1154`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass0>
+               callvirt instance string class G3_C1154`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G3_C1154`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G3_C1154::ClassMethod1773.MI.14622<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G3_C1154`1<class BaseClass1>
+               callvirt instance string class G3_C1154`1<class BaseClass1>::ClassMethod3701<object>()
+               ldstr "G3_C1154::ClassMethod3701.14621<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass1>
+               callvirt instance string class G3_C1154`1<class BaseClass1>::ClassMethod3700()
+               ldstr "G3_C1154::ClassMethod3700.14620()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass1>
+               callvirt instance string class G3_C1154`1<class BaseClass1>::Method7<object>()
+               ldstr "G3_C1154::Method7.14618<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass1>
+               callvirt instance string class G3_C1154`1<class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G3_C1154::ClassMethod1773.MI.14622<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass1>
+               callvirt instance string class G3_C1154`1<class BaseClass1>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass1>
+               callvirt instance string class G3_C1154`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass1>
+               callvirt instance string class G3_C1154`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1154`1<class BaseClass1>
+               callvirt instance string class G3_C1154`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void ConstrainedCallsTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Constrained Calls Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1154`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G3_C1154`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G3_C1154`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G3_C1154`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G3_C1154`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G3_C1154`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G3_C1154`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G3_C1154`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G3_C1154`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G3_C1154`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G3_C1154`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G3_C1154`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G3_C1154::ClassMethod1773.MI.14622<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass0,class BaseClass0,class G3_C1154`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G3_C1154::ClassMethod1773.MI.14622<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.T<class BaseClass0,class G3_C1154`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G3_C1154::ClassMethod1773.MI.14622<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.A<class G3_C1154`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G3_C1154::ClassMethod1773.MI.14622<System.Object>()#G3_C1154::ClassMethod3700.14620()#G3_C1154::ClassMethod3701.14621<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G3_C1154::Method7.14618<System.Object>()#"
+               call void Framework::M.G3_C1154.T<class BaseClass0,class G3_C1154`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G3_C1154::ClassMethod1773.MI.14622<System.Object>()#G3_C1154::ClassMethod3700.14620()#G3_C1154::ClassMethod3701.14621<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G3_C1154::Method7.14618<System.Object>()#"
+               call void Framework::M.G3_C1154.A<class G3_C1154`1<class BaseClass0>>(!!0,string)
+               newobj instance void class G3_C1154`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G3_C1154`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G3_C1154`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G3_C1154`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G3_C1154`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G3_C1154`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G3_C1154`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G3_C1154`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G3_C1154`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G3_C1154`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G3_C1154`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G3_C1154`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G3_C1154::ClassMethod1773.MI.14622<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass0,class BaseClass1,class G3_C1154`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G3_C1154::ClassMethod1773.MI.14622<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.T<class BaseClass1,class G3_C1154`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G3_C1154::ClassMethod1773.MI.14622<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.B<class G3_C1154`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G3_C1154`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G3_C1154`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G3_C1154`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G3_C1154::ClassMethod1773.MI.14622<System.Object>()#G3_C1154::ClassMethod3700.14620()#G3_C1154::ClassMethod3701.14621<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G3_C1154::Method7.14618<System.Object>()#"
+               call void Framework::M.G3_C1154.T<class BaseClass1,class G3_C1154`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G3_C1154::ClassMethod1773.MI.14622<System.Object>()#G3_C1154::ClassMethod3700.14620()#G3_C1154::ClassMethod3701.14621<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G3_C1154::Method7.14618<System.Object>()#"
+               call void Framework::M.G3_C1154.B<class G3_C1154`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass0,class G3_C1154`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass0,class G3_C1154`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()#"
+               call void Framework::M.IBase2.B.A<class G3_C1154`1<class BaseClass1>>(!!0,string)
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.A<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.B<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass1,class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.A<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass1,class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.B<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void StructConstrainedInterfaceCallsTest() cil managed
+       {
+               .maxstack  10
+               ldstr "===================== Struct Constrained Interface Calls Test ====================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void CalliTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Method Calli Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1154`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1773<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G3_C1154::ClassMethod1773.MI.14622<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1772()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method5()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method4()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass0>::ClassMethod3701<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G3_C1154::ClassMethod3701.14621<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass0>::ClassMethod3700()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G3_C1154::ClassMethod3700.14620()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G3_C1154::Method7.14618<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass0>::ClassMethod1773<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G3_C1154::ClassMethod1773.MI.14622<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass0>::ClassMethod1772()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1154`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G3_C1154`1<class BaseClass0> on type class G3_C1154`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G3_C1154`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G3_C1154::ClassMethod1773.MI.14622<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass1>::ClassMethod3701<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G3_C1154::ClassMethod3701.14621<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass1>::ClassMethod3700()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G3_C1154::ClassMethod3700.14620()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G3_C1154::Method7.14618<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G3_C1154::ClassMethod1773.MI.14622<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass1>::ClassMethod1772()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1154`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1154`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G3_C1154`1<class BaseClass1> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1154`1<class BaseClass1>)
+               ldstr "G3_C1154::Method7.MI.14619<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass0> on type class G3_C1154`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1773<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1772()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1773<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1772()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1772()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static int32  Main() cil managed
+       {
+               .entrypoint
+               .maxstack  10
+               call void Framework::MethodCallingTest()
+               call void Framework::ConstrainedCallsTest()
+               call void Framework::StructConstrainedInterfaceCallsTest()
+               call void Framework::CalliTest()
+               ldc.i4 100
+               ret
+       }
+}
diff --git a/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest682/Generated682.ilproj b/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest682/Generated682.ilproj
new file mode 100644 (file)
index 0000000..29a8d9a
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+  <PropertyGroup>
+    <AssemblyName>Generated682</AssemblyName>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+    <OutputType>Exe</OutputType>
+    <CLRTestKind>BuildAndRun</CLRTestKind>
+    <CLRTestPriority>1</CLRTestPriority>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="Generated682.il" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Include="..\app.config" />
+  </ItemGroup>
+  
+  <ItemGroup>
+    <ProjectReference Include="..\TestFramework\TestFramework.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
diff --git a/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest683/Generated683.il b/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest683/Generated683.il
new file mode 100644 (file)
index 0000000..582918f
--- /dev/null
@@ -0,0 +1,3121 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+.assembly extern mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) .ver 4:0:0:0 }
+.assembly extern TestFramework { .publickeytoken = ( B0 3F 5F 7F 11 D5 0A 3A )  }
+
+//TYPES IN FORWARDER ASSEMBLIES:
+
+//TEST ASSEMBLY:
+.assembly Generated683 { .hash algorithm 0x00008004 }
+.module Generated683.exe
+
+.class public BaseClass0 
+{
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void [mscorlib]System.Object::.ctor()
+               ret
+       }
+}
+.class public BaseClass1 
+               extends BaseClass0
+{
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void BaseClass0::.ctor()
+               ret
+       }
+}
+.class public G3_C1155`1<T0> 
+               extends class G2_C221`2<class BaseClass1,!T0>
+               implements class IBase2`2<!T0,class BaseClass1> 
+{
+       .method public hidebysig newslot virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G3_C1155::Method7.14623<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod3702() cil managed noinlining { 
+               ldstr "G3_C1155::ClassMethod3702.14624()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod3703() cil managed noinlining { 
+               ldstr "G3_C1155::ClassMethod3703.14625()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'G2_C221<class BaseClass1,T0>.ClassMethod1772'() cil managed noinlining { 
+               .override method instance string class G2_C221`2<class BaseClass1,!T0>::ClassMethod1772()
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()"
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void class G2_C221`2<class BaseClass1,!T0>::.ctor()
+               ret
+       }
+}
+.class public G2_C221`2<T0, T1> 
+               extends G1_C2
+               implements class IBase2`2<!T1,!T1> 
+{
+       .method public hidebysig virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G2_C221::Method7.6813<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase2<T1,T1>.Method7'<M0>() cil managed noinlining { 
+               .override method instance string class IBase2`2<!T1,!T1>::Method7<[1]>()
+               ldstr "G2_C221::Method7.MI.6814<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1772() cil managed noinlining { 
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string ClassMethod1773<M0>() cil managed noinlining { 
+               ldstr "G2_C221::ClassMethod1773.6816<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void G1_C2::.ctor()
+               ret
+       }
+}
+.class interface public abstract IBase2`2<+T0, -T1> 
+{
+       .method public hidebysig newslot abstract virtual instance string Method7<M0>() cil managed { }
+}
+.class public abstract G1_C2 
+               implements class IBase2`2<class BaseClass0,class BaseClass0>, class IBase1`1<class BaseClass1> 
+{
+       .method public hidebysig newslot virtual instance string Method7<M0>() cil managed noinlining { 
+               ldstr "G1_C2::Method7.4778<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig virtual instance string Method4() cil managed noinlining { 
+               ldstr "G1_C2::Method4.4779()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method4'() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method5() cil managed noinlining { 
+               ldstr "G1_C2::Method5.4781()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method5'() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ret
+       }
+       .method public hidebysig newslot virtual instance string Method6<M0>() cil managed noinlining { 
+               ldstr "G1_C2::Method6.4783<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig newslot virtual instance string 'IBase1<class BaseClass1>.Method6'<M0>() cil managed noinlining { 
+               .override method instance string class IBase1`1<class BaseClass1>::Method6<[1]>()
+               ldstr "G1_C2::Method6.MI.4784<"
+               ldtoken !!M0
+               call class [mscorlib]System.Type [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)
+               call string [mscorlib]System.String::Concat(object,object)
+               ldstr ">()"
+               call string [mscorlib]System.String::Concat(object,object)
+               ret
+       }
+       .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { 
+               ldarg.0
+               call instance void [mscorlib]System.Object::.ctor()
+               ret
+       }
+}
+.class interface public abstract IBase1`1<+T0> 
+{
+       .method public hidebysig newslot abstract virtual instance string Method4() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method5() cil managed { }
+       .method public hidebysig newslot abstract virtual instance string Method6<M0>() cil managed { }
+}
+.class private auto ansi beforefieldinit Framework {
+       .method static void M.BaseClass0<(BaseClass0)W>(!!W inst, string exp) cil managed {
+               .maxstack 5
+               .locals init (string[] actualResults)
+               ldc.i4.s    0
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.BaseClass0<(BaseClass0)W>(!!W inst, string exp)"
+               ldc.i4.s 0
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.BaseClass1<(BaseClass1)W>(!!W inst, string exp) cil managed {
+               .maxstack 5
+               .locals init (string[] actualResults)
+               ldc.i4.s    0
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.BaseClass1<(BaseClass1)W>(!!W inst, string exp)"
+               ldc.i4.s 0
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1155.T<T0,(class G3_C1155`1<!!T0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 13
+               .locals init (string[] actualResults)
+               ldc.i4.s    8
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1155.T<T0,(class G3_C1155`1<!!T0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 8
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<!!T0>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<!!T0>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<!!T0>::ClassMethod3702()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<!!T0>::ClassMethod3703()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<!!T0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<!!T0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<!!T0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<!!T0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1155.A<(class G3_C1155`1<class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 13
+               .locals init (string[] actualResults)
+               ldc.i4.s    8
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1155.A<(class G3_C1155`1<class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 8
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass0>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass0>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass0>::ClassMethod3702()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass0>::ClassMethod3703()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G3_C1155.B<(class G3_C1155`1<class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 13
+               .locals init (string[] actualResults)
+               ldc.i4.s    8
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G3_C1155.B<(class G3_C1155`1<class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 8
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass1>::ClassMethod3702()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass1>::ClassMethod3703()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     6
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     7
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G3_C1155`1<class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.T.T<T0,T1,(class G2_C221`2<!!T0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.T.T<T0,T1,(class G2_C221`2<!!T0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<!!T0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.A.T<T1,(class G2_C221`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.A.T<T1,(class G2_C221`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.A.A<(class G2_C221`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.A.A<(class G2_C221`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.A.B<(class G2_C221`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.A.B<(class G2_C221`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.B.T<T1,(class G2_C221`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.B.T<T1,(class G2_C221`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.B.A<(class G2_C221`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.B.A<(class G2_C221`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G2_C221.B.B<(class G2_C221`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 11
+               .locals init (string[] actualResults)
+               ldc.i4.s    6
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G2_C221.B.B<(class G2_C221`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 6
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1772()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1773<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     4
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     5
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.T.T<T0,T1,(class IBase2`2<!!T0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.T.T<T0,T1,(class IBase2`2<!!T0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<!!T0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.T<T1,(class IBase2`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.T<T1,(class IBase2`2<class BaseClass0,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.A<(class IBase2`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.A<(class IBase2`2<class BaseClass0,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.A.B<(class IBase2`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.A.B<(class IBase2`2<class BaseClass0,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.T<T1,(class IBase2`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.T<T1,(class IBase2`2<class BaseClass1,!!T1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,!!T1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.A<(class IBase2`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.A<(class IBase2`2<class BaseClass1,class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase2.B.B<(class IBase2`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 6
+               .locals init (string[] actualResults)
+               ldc.i4.s    1
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase2.B.B<(class IBase2`2<class BaseClass1,class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 1
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.G1_C2<(G1_C2)W>(!!W inst, string exp) cil managed {
+               .maxstack 9
+               .locals init (string[] actualResults)
+               ldc.i4.s    4
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.G1_C2<(G1_C2)W>(!!W inst, string exp)"
+               ldc.i4.s 4
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G1_C2::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G1_C2::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G1_C2::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     3
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string G1_C2::Method7<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.T<T0,(class IBase1`1<!!T0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.T<T0,(class IBase1`1<!!T0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<!!T0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.A<(class IBase1`1<class BaseClass0>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.A<(class IBase1`1<class BaseClass0>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method static void M.IBase1.B<(class IBase1`1<class BaseClass1>)W>(!!W 'inst', string exp) cil managed {
+               .maxstack 8
+               .locals init (string[] actualResults)
+               ldc.i4.s    3
+               newarr      string
+               stloc.s     actualResults
+               ldarg.1
+               ldstr "M.IBase1.B<(class IBase1`1<class BaseClass1>)W>(!!W 'inst', string exp)"
+               ldc.i4.s 3
+               ldloc.s      actualResults
+               ldc.i4.s     0
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method4()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     1
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method5()
+               stelem.ref
+               ldloc.s      actualResults
+               ldc.i4.s     2
+               ldarga.s     0
+               constrained. !!W
+               callvirt     instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               stelem.ref
+               ldloc.s      actualResults
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,int32,string[])
+               ret
+       }
+       .method public hidebysig static void MethodCallingTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Method Calling Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1155`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1155::Method7.14623<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1772()
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G3_C1155`1<class BaseClass0>
+               callvirt instance string class G3_C1155`1<class BaseClass0>::ClassMethod3703()
+               ldstr "G3_C1155::ClassMethod3703.14625()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass0>
+               callvirt instance string class G3_C1155`1<class BaseClass0>::ClassMethod3702()
+               ldstr "G3_C1155::ClassMethod3702.14624()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass0>
+               callvirt instance string class G3_C1155`1<class BaseClass0>::Method7<object>()
+               ldstr "G3_C1155::Method7.14623<System.Object>()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass0>
+               callvirt instance string class G3_C1155`1<class BaseClass0>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass0>
+               callvirt instance string class G3_C1155`1<class BaseClass0>::ClassMethod1772()
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass0>
+               callvirt instance string class G3_C1155`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass0>
+               callvirt instance string class G3_C1155`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass0>
+               callvirt instance string class G3_C1155`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G3_C1155`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1155::Method7.14623<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1772()
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G3_C1155::Method7.14623<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G3_C1155`1<class BaseClass1>
+               callvirt instance string class G3_C1155`1<class BaseClass1>::ClassMethod3703()
+               ldstr "G3_C1155::ClassMethod3703.14625()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass1>
+               callvirt instance string class G3_C1155`1<class BaseClass1>::ClassMethod3702()
+               ldstr "G3_C1155::ClassMethod3702.14624()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass1>
+               callvirt instance string class G3_C1155`1<class BaseClass1>::Method7<object>()
+               ldstr "G3_C1155::Method7.14623<System.Object>()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass1>
+               callvirt instance string class G3_C1155`1<class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass1>
+               callvirt instance string class G3_C1155`1<class BaseClass1>::ClassMethod1772()
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass1>
+               callvirt instance string class G3_C1155`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass1>
+               callvirt instance string class G3_C1155`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G3_C1155`1<class BaseClass1>
+               callvirt instance string class G3_C1155`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G1_C2
+               callvirt instance string class G1_C2::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method4()
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method5()
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               callvirt instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1773<object>()
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1772()
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method5()
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               dup
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               callvirt instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method4()
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldloc.0
+               dup
+               callvirt instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               pop
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void ConstrainedCallsTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Constrained Calls Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1155`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G3_C1155`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G3_C1155`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G3_C1155`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G3_C1155`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G3_C1155`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G3_C1155`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G3_C1155`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G3_C1155`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G3_C1155`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G3_C1155`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G3_C1155`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass1,class BaseClass0,class G3_C1155`1<class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.T<class BaseClass0,class G3_C1155`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.A<class G3_C1155`1<class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()#G2_C221::ClassMethod1773.6816<System.Object>()#G3_C1155::ClassMethod3702.14624()#G3_C1155::ClassMethod3703.14625()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.G3_C1155.T<class BaseClass0,class G3_C1155`1<class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()#G2_C221::ClassMethod1773.6816<System.Object>()#G3_C1155::ClassMethod3702.14624()#G3_C1155::ClassMethod3703.14625()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.G3_C1155.A<class G3_C1155`1<class BaseClass0>>(!!0,string)
+               newobj instance void class G3_C1155`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G3_C1155`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G3_C1155`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G3_C1155`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G3_C1155`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G3_C1155`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G3_C1155`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G3_C1155`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G3_C1155`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G3_C1155`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G3_C1155`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G3_C1155`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass1,class BaseClass1,class G3_C1155`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.T<class BaseClass1,class G3_C1155`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.B<class G3_C1155`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G3_C1155`1<class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G3_C1155`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G3_C1155`1<class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()#G2_C221::ClassMethod1773.6816<System.Object>()#G3_C1155::ClassMethod3702.14624()#G3_C1155::ClassMethod3703.14625()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.G3_C1155.T<class BaseClass1,class G3_C1155`1<class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()#G2_C221::ClassMethod1773.6816<System.Object>()#G3_C1155::ClassMethod3702.14624()#G3_C1155::ClassMethod3703.14625()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G3_C1155::Method7.14623<System.Object>()#"
+               call void Framework::M.G3_C1155.B<class G3_C1155`1<class BaseClass1>>(!!0,string)
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.A<class G2_C221`2<class BaseClass0,class BaseClass0>>(!!0,string)
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.A.B<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G2_C221`2<class BaseClass0,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G2_C221`2<class BaseClass0,class BaseClass1>>(!!0,string)
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass1,class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass0>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.A<class G2_C221`2<class BaseClass1,class BaseClass0>>(!!0,string)
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               ldstr "G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G1_C2<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.IBase2.A.A<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.B<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass0,class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.A.B<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.T<class BaseClass0,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G1_C2::Method4.MI.4780()#G1_C2::Method5.MI.4782()#G1_C2::Method6.MI.4784<System.Object>()#"
+               call void Framework::M.IBase1.A<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.T.T<class BaseClass1,class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::ClassMethod1772.6815()#G2_C221::ClassMethod1773.6816<System.Object>()#G1_C2::Method4.4779()#G1_C2::Method5.4781()#G1_C2::Method6.4783<System.Object>()#G2_C221::Method7.6813<System.Object>()#"
+               call void Framework::M.G2_C221.B.B<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.T.T<class BaseClass1,class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!2,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.T<class BaseClass1,class G2_C221`2<class BaseClass1,class BaseClass1>>(!!1,string)
+               ldloc.0
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()#"
+               call void Framework::M.IBase2.B.B<class G2_C221`2<class BaseClass1,class BaseClass1>>(!!0,string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void StructConstrainedInterfaceCallsTest() cil managed
+       {
+               .maxstack  10
+               ldstr "===================== Struct Constrained Interface Calls Test ====================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static void CalliTest() cil managed
+       {
+               .maxstack  10
+               .locals init (object V_0)
+               ldstr "========================== Method Calli Test =========================="
+               call void [mscorlib]System.Console::WriteLine(string)
+               newobj instance void class G3_C1155`1<class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G3_C1155::Method7.14623<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1773<object>()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1772()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method5()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method4()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass0>::ClassMethod3703()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G3_C1155::ClassMethod3703.14625()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass0>::ClassMethod3702()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G3_C1155::ClassMethod3702.14624()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G3_C1155::Method7.14623<System.Object>()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass0>::ClassMethod1773<object>()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass0>::ClassMethod1772()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1155`1<class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G3_C1155`1<class BaseClass0> on type class G3_C1155`1<class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G3_C1155`1<class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G3_C1155::Method7.14623<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1772()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method5()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method4()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G3_C1155::Method7.14623<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass1>::ClassMethod3703()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G3_C1155::ClassMethod3703.14625()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass1>::ClassMethod3702()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G3_C1155::ClassMethod3702.14624()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass1>::Method7<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G3_C1155::Method7.14623<System.Object>()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass1>::ClassMethod1772()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G3_C1155::ClassMethod1772.MI.14626()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass1>::Method6<object>()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass1>::Method5()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G3_C1155`1<class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G3_C1155`1<class BaseClass1>::Method4()
+               calli default string(class G3_C1155`1<class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G3_C1155`1<class BaseClass1> on type class G3_C1155`1<class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1773<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::ClassMethod1772()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C221`2<class BaseClass0,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::ClassMethod1772()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass0,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass0,class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass0,class BaseClass1>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass0,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass0>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1773<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::ClassMethod1772()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass0>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass0>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass0>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               newobj instance void class G2_C221`2<class BaseClass1,class BaseClass1>::.ctor()
+               stloc.0
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G1_C2
+               ldloc.0
+               ldvirtftn instance string class G1_C2::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G1_C2 on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass0>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass0,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass0,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method4.MI.4780()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method5.MI.4782()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase1`1<class BaseClass0>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method6.MI.4784<System.Object>()"
+               ldstr "class IBase1`1<class BaseClass0> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1773<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1773.6816<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::ClassMethod1772()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::ClassMethod1772.6815()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.6813<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method6<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method6.4783<System.Object>()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method5()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method5.4781()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               castclass class G2_C221`2<class BaseClass1,class BaseClass1>
+               ldloc.0
+               ldvirtftn instance string class G2_C221`2<class BaseClass1,class BaseClass1>::Method4()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G1_C2::Method4.4779()"
+               ldstr "class G2_C221`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldloc.0
+               ldloc.0
+               ldvirtftn instance string class IBase2`2<class BaseClass1,class BaseClass1>::Method7<object>()
+               calli default string(class G2_C221`2<class BaseClass1,class BaseClass1>)
+               ldstr "G2_C221::Method7.MI.6814<System.Object>()"
+               ldstr "class IBase2`2<class BaseClass1,class BaseClass1> on type class G2_C221`2<class BaseClass1,class BaseClass1>"
+               call void [TestFramework]TestFramework::MethodCallTest(string,string,string)
+               ldstr "========================================================================\n\n"
+               call void [mscorlib]System.Console::WriteLine(string)
+               ret
+       }
+       .method public hidebysig static int32  Main() cil managed
+       {
+               .entrypoint
+               .maxstack  10
+               call void Framework::MethodCallingTest()
+               call void Framework::ConstrainedCallsTest()
+               call void Framework::StructConstrainedInterfaceCallsTest()
+               call void Framework::CalliTest()
+               ldc.i4 100
+               ret
+       }
+}
diff --git a/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest683/Generated683.ilproj b/tests/src/Loader/classloader/TypeGeneratorTests/TypeGeneratorTest683/Generated683.ilproj
new file mode 100644 (file)
index 0000000..ef147bd
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+  <PropertyGroup>
+    <AssemblyName>Generated683</AssemblyName>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+    <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+    <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+    <OutputType>Exe</OutputType>
+    <CLRTestKind>BuildAndRun</CLRTestKind>
+    <CLRTestPriority>1</CLRTestPriority>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Compile Include="Generated683.il" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <None Include="..\app.config" />
+  </ItemGroup>
+  
+  <ItemGroup>
+    <ProjectReference Include="..\TestFramework\TestFramework.csproj" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+  </ItemGroup>
+  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
index b301a8b..260f9a5 100644 (file)
@@ -70,4 +70,10 @@ GC/Features/BackgroundGC/foregroundgc/foregroundgc.sh
 GC/Features/LOHFragmentation/lohfragmentation/lohfragmentation.sh
 GC/Features/SustainedLowLatency/scenario/scenario.sh
 GC/Regressions/dev10bugs/536168/536168/536168.sh
-GC/Stress/Framework/ReliabilityFramework/ReliabilityFramework.sh
\ No newline at end of file
+GC/Stress/Framework/ReliabilityFramework/ReliabilityFramework.sh
+Loader/classloader/TypeGeneratorTests/TypeGeneratorTest612/Generated612/Generated612.sh
+Loader/classloader/TypeGeneratorTests/TypeGeneratorTest613/Generated613/Generated613.sh
+Loader/classloader/TypeGeneratorTests/TypeGeneratorTest614/Generated614/Generated614.sh
+Loader/classloader/TypeGeneratorTests/TypeGeneratorTest681/Generated681/Generated681.sh
+Loader/classloader/TypeGeneratorTests/TypeGeneratorTest682/Generated682/Generated682.sh
+Loader/classloader/TypeGeneratorTests/TypeGeneratorTest683/Generated683/Generated683.sh
\ No newline at end of file