diff options
Diffstat (limited to 'tests/src/Loader/classloader/InterfaceFolding/Nested_I_Nested_J/TestCase5.il')
-rw-r--r-- | tests/src/Loader/classloader/InterfaceFolding/Nested_I_Nested_J/TestCase5.il | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/tests/src/Loader/classloader/InterfaceFolding/Nested_I_Nested_J/TestCase5.il b/tests/src/Loader/classloader/InterfaceFolding/Nested_I_Nested_J/TestCase5.il new file mode 100644 index 0000000000..46b6c3a8e2 --- /dev/null +++ b/tests/src/Loader/classloader/InterfaceFolding/Nested_I_Nested_J/TestCase5.il @@ -0,0 +1,90 @@ +// 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 {} +.assembly TestCase5 {} + + +// =============== CLASS MEMBERS DECLARATION =================== +.class private auto ansi beforefieldinit A`1<U> + implements class A`1/I`1<!U> +{ + .class interface nested family abstract auto ansi I`1<T> + { + .method public hidebysig newslot abstract virtual instance string Foo() cil managed {} + .class interface nested public abstract auto ansi J + { + .method public hidebysig newslot abstract virtual instance string Bar1() cil managed {} + .method public hidebysig newslot abstract virtual instance string Bar2() cil managed {} + } + } + .method public hidebysig newslot virtual instance string Foo() cil managed + { + ldstr "A::Foo" + ret + } + .method public hidebysig newslot virtual instance string Bar1() cil managed + { + .maxstack 8 + ldstr "A::Bar1" + ret + } + .method public hidebysig newslot virtual instance string Bar2() cil managed + { + .maxstack 8 + ldstr "A::Bar2" + ret + } + .method public hidebysig specialname rtspecialname instance void .ctor() cil managed {} +} + +.class private auto ansi beforefieldinit B`2<V,W> + extends class A`1<!V> + implements class A`1/I`1<!W>, A`1/I`1/J +{ + .method public hidebysig specialname rtspecialname instance void .ctor() cil managed {} +} + +.class private auto ansi beforefieldinit C extends class B`2<class C,class C> +{ .method public hidebysig specialname rtspecialname instance void .ctor() cil managed {} } + + +.class public auto ansi beforefieldinit Test extends [mscorlib]System.Object +{ + .method public hidebysig static int32 Main() cil managed + { + .entrypoint + + newobj instance void C::.ctor() + callvirt instance string class C::Foo() + ldstr "A::Foo" + call bool [mscorlib]System.String::op_Inequality(string, string) + brtrue FAILURE + + newobj instance void C::.ctor() + callvirt instance string class C::Bar1() + ldstr "A::Bar1" + call bool [mscorlib]System.String::op_Inequality(string,string) + brtrue FAILURE + + newobj instance void C::.ctor() + callvirt instance string class C::Bar2() + ldstr "A::Bar2" + call bool [mscorlib]System.String::op_Inequality(string,string) + brtrue FAILURE + + +PASS: + ldstr "Pass" + call void [mscorlib]System.Console::WriteLine(string) + ldc.i4.s 100 + ret + +FAILURE: + ldstr "Failed!" + call void [mscorlib]System.Console::WriteLine(string) + ldc.i4.m1 + ret + } +}
\ No newline at end of file |