/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Compilers/VisualBasic/Test/Semantic/Semantics/NoncompliantOverloadingInMetadata.vb
8 720 строк
256 KB
Julien Couvreur
Warn for multiple blank lines in source (#65451)
17 ноя 2022, 22:55
Не верифицирован
17 ноя 2022, 22:55
a8824e8
Код
Авторство
О чём код?
' 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. Imports Roslyn.Test.Utilities Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests.Semantics Public Class NoncompliantOverloadingInMetadata Inherits BasicTestBase <Fact()> Public Sub NamespaceOfTypesDifferByCase_1() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) } .module '<<GeneratedFileName>>.dll' .class public abstract auto ansi sealed beforefieldinit extensions.C extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.3 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method C::Goo } // end of class extensions.C .class public abstract auto ansi sealed beforefieldinit Extensions.C extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.1 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method C::Goo } // end of class Extensions.C .class public abstract auto ansi sealed beforefieldinit Extensions.D extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.2 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method D::Goo } // end of class Extensions.D ]]> Dim compilation = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 x.Goo Goo(x) Extensions.C.Goo(x) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False) ' x.Goo - !!! Breaking change, Dev10 calls Extensions.D.Goo ' Goo(x) - Same error in Dev10. ' Extensions.C.Goo(x) - Dev10 reports two errors: ' error BC31429: 'C' is ambiguous because multiple kinds of members with this name exist in namespace 'Extensions'. ' error BC30560: 'C' is ambiguous in the namespace 'Extensions'. ' BC31429 looks redundant and inaccurate. CompilationUtils.AssertTheseDiagnostics(compilation, <expected> BC30521: Overload resolution failed because no accessible 'Goo' is most specific for these arguments: Extension method 'Public Sub Goo()' defined in 'C': Not most specific. Extension method 'Public Sub Goo()' defined in 'C': Not most specific. Extension method 'Public Sub Goo()' defined in 'D': Not most specific. x.Goo ~~~ BC30562: 'Goo' is ambiguous between declarations in Modules 'extensions.C, Extensions.C, Extensions.D'. Goo(x) ~~~ BC30560: 'C' is ambiguous in the namespace 'extensions'. Extensions.C.Goo(x) ~~~~~~~~~~~~ </expected>) End Sub <Fact()> Public Sub NamespaceOfTypesDifferByCase_2() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) } .module '<<GeneratedFileName>>.dll' .class private abstract auto ansi sealed beforefieldinit extensions.C extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.3 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method C::Goo } // end of class extensions.C .class public abstract auto ansi sealed beforefieldinit Extensions.C extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.1 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method C::Goo } // end of class Extensions.C .class public abstract auto ansi sealed beforefieldinit Extensions.D extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.2 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method D::Goo } // end of class Extensions.D ]]> Dim compilation = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 x.Goo Goo(x) Extensions.C.Goo(x) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False) CompilationUtils.AssertTheseDiagnostics(compilation, <expected> BC30521: Overload resolution failed because no accessible 'Goo' is most specific for these arguments: Extension method 'Public Sub Goo()' defined in 'C': Not most specific. Extension method 'Public Sub Goo()' defined in 'D': Not most specific. x.Goo ~~~ BC30562: 'Goo' is ambiguous between declarations in Modules 'Extensions.C, Extensions.D'. Goo(x) ~~~ </expected>) End Sub <Fact()> Public Sub NamespaceOfTypesDifferByCase_3() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) } .module '<<GeneratedFileName>>.dll' .class public abstract auto ansi sealed beforefieldinit extensions.C extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.3 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method C::Goo } // end of class extensions.C .class public abstract auto ansi sealed beforefieldinit Extensions.C extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) } // end of class Extensions.C ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 x.Goo Goo(x) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) ' x.Goo - Dev10 reports error BC30456: 'Goo' is not a member of 'Integer'. ' Goo(x) - no change, works CompileAndVerify(compilation1, expectedOutput:="3" & Environment.NewLine & "3") Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 Extensions.C.Goo(x) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) ' Dev10 reports two errors: ' error BC31429: 'C' is ambiguous because multiple kinds of members with this name exist in namespace 'Extensions'. ' error BC30560: 'C' is ambiguous in the namespace 'Extensions'. ' BC31429 looks redundant and inaccurate. CompilationUtils.AssertTheseDiagnostics(compilation2, <expected> BC30560: 'C' is ambiguous in the namespace 'extensions'. Extensions.C.Goo(x) ~~~~~~~~~~~~ </expected>) End Sub <Fact()> Public Sub TypesDifferByCase_1() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) } .module '<<GeneratedFileName>>.dll' .class public abstract auto ansi sealed beforefieldinit Extensions.c extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.3 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method C::Goo } // end of class extensions.C .class public abstract auto ansi sealed beforefieldinit Extensions.C extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.1 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method C::Goo } // end of class Extensions.C .class public abstract auto ansi sealed beforefieldinit Extensions.D extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.2 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method D::Goo } // end of class Extensions.D ]]> Dim compilation = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 x.Goo Goo(x) Extensions.C.Goo(x) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False) ' x.Goo - !!! Breaking change, Dev10 calls Extensions.D.Goo ' Goo(x) - Same error in Dev10. ' Extensions.C.Goo(x) - Dev10 reports two errors: ' error BC31429: 'C' is ambiguous because multiple kinds of members with this name exist in namespace 'Extensions'. ' error BC30560: 'C' is ambiguous in the namespace 'Extensions'. ' BC31429 looks redundant and inaccurate. CompilationUtils.AssertTheseDiagnostics(compilation, <expected> BC30521: Overload resolution failed because no accessible 'Goo' is most specific for these arguments: Extension method 'Public Sub Goo()' defined in 'c': Not most specific. Extension method 'Public Sub Goo()' defined in 'C': Not most specific. Extension method 'Public Sub Goo()' defined in 'D': Not most specific. x.Goo ~~~ BC30562: 'Goo' is ambiguous between declarations in Modules 'Extensions.c, Extensions.C, Extensions.D'. Goo(x) ~~~ BC30560: 'c' is ambiguous in the namespace 'Extensions'. Extensions.C.Goo(x) ~~~~~~~~~~~~ </expected>) End Sub <Fact()> Public Sub TypesDifferByCase_2() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) } .module '<<GeneratedFileName>>.dll' .class private abstract auto ansi sealed beforefieldinit Extensions.c extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.3 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method C::Goo } // end of class extensions.C .class public abstract auto ansi sealed beforefieldinit Extensions.C extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.1 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method C::Goo } // end of class Extensions.C .class public abstract auto ansi sealed beforefieldinit Extensions.D extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.2 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method D::Goo } // end of class Extensions.D ]]> Dim compilation = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 x.Goo Goo(x) Extensions.C.Goo(x) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False) CompilationUtils.AssertTheseDiagnostics(compilation, <expected> BC30521: Overload resolution failed because no accessible 'Goo' is most specific for these arguments: Extension method 'Public Sub Goo()' defined in 'C': Not most specific. Extension method 'Public Sub Goo()' defined in 'D': Not most specific. x.Goo ~~~ BC30562: 'Goo' is ambiguous between declarations in Modules 'Extensions.C, Extensions.D'. Goo(x) ~~~ </expected>) End Sub <Fact()> Public Sub TypesDifferByCase_3() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) } .module '<<GeneratedFileName>>.dll' .class public abstract auto ansi sealed beforefieldinit Extensions.c extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.3 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method C::Goo } // end of class extensions.C .class public abstract auto ansi sealed beforefieldinit Extensions.C extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) } // end of class Extensions.C ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 x.Goo Goo(x) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) ' x.Goo - Dev10 reports error BC30456: 'Goo' is not a member of 'Integer'. ' Goo(x) - no change, works CompileAndVerify(compilation1, expectedOutput:="3" & Environment.NewLine & "3") Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 Extensions.C.Goo(x) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) ' Dev10 reports two errors: ' error BC31429: 'C' is ambiguous because multiple kinds of members with this name exist in namespace 'Extensions'. ' error BC30560: 'C' is ambiguous in the namespace 'Extensions'. ' BC31429 looks redundant and inaccurate. CompilationUtils.AssertTheseDiagnostics(compilation2, <expected> BC30560: 'c' is ambiguous in the namespace 'Extensions'. Extensions.C.Goo(x) ~~~~~~~~~~~~ </expected>) End Sub <Fact()> Public Sub MembersDifferByCaseAndAccessibility_1() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Bar extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Container1.Bar" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Bar::.ctor .method public hidebysig static void bar1() cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container1.Bar.bar1" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Bar::bar1 } // end of class Bar .class auto ansi nested family beforefieldinit bar extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Container1.bar" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method bar::.ctor .method public hidebysig static void bar1() cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container1.bar.bar1" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method bar::bar1 } // end of class bar .field public string Baz .field family string baz .method public hidebysig instance void goo(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container1.goo" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container1::goo .method family hidebysig instance void gOO(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container1.gOO" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container1::gOO .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 30 (0x1e) .maxstack 8 IL_0000: ldarg.0 IL_0001: ldstr "Baz" IL_0006: stfld string Container1::Baz IL_000b: ldarg.0 IL_000c: ldstr "baz" IL_0011: stfld string Container1::baz IL_0016: ldarg.0 IL_0017: call instance void [mscorlib]System.Object::.ctor() IL_001c: nop IL_001d: ret } // end of method Container1::.ctor } // end of class Container1 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container1 Sub Test() goo(1) System.Console.WriteLine(Baz) Dim bar As New Bar() MyBase.Bar.bar1() End Sub End Class Sub Main Dim c1 As New Container1() c1.goo(1) System.Console.WriteLine(c1.baz) Dim bar As New Container1.Bar() Container1.Bar.bar1() Dim t1 As New Test() t1.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation1, expectedOutput:= <![CDATA[ Container1.goo Baz Container1.Bar Container1.Bar.bar1 Container1.goo Baz Container1.Bar Container1.Bar.bar1 ]]>) End Sub <Fact()> Public Sub MembersDifferByKindAndAccessibility_1() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Bar extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Container1.Bar" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Bar::.ctor .method public hidebysig static void bar1() cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container1.Bar.bar1" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Bar::bar1 } // end of class Bar .class auto ansi nested family beforefieldinit baz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Container1.baz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method baz::.ctor } // end of class baz .field family string bar .field family string gOO .field public string Baz .method public hidebysig instance void goo() cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container1.goo" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container1::goo .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 41 (0x29) .maxstack 8 IL_0000: ldarg.0 IL_0001: ldstr "bar" IL_0006: stfld string Container1::bar IL_000b: ldarg.0 IL_000c: ldstr "gOO" IL_0011: stfld string Container1::gOO IL_0016: ldarg.0 IL_0017: ldstr "Baz" IL_001c: stfld string Container1::Baz IL_0021: ldarg.0 IL_0022: call instance void [mscorlib]System.Object::.ctor() IL_0027: nop IL_0028: ret } // end of method Container1::.ctor } // end of class Container1 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container1 Sub Test() goo System.Console.WriteLine(Baz) Dim bar As New Bar() MyBase.Bar.bar1() End Sub End Class Sub Main Dim c1 As New Container1() c1.goo System.Console.WriteLine(c1.baz) Dim bar As New Container1.Bar() Container1.Bar.bar1() Dim t1 As New Test() t1.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation1, expectedOutput:= <![CDATA[ Container1.goo Baz Container1.Bar Container1.Bar.bar1 Container1.goo Baz Container1.Bar Container1.Bar.bar1 ]]>) End Sub <Fact()> Public Sub MembersDifferByKindSameAccessibility_1() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Bar extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Container1.Bar" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Bar::.ctor .method public hidebysig static void bar1() cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container1.Bar.bar1" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Bar::bar1 } // end of class Bar .field public static string bar .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container1::.ctor } // end of class Container1 ]]> ' New Container1.Bar - Dev10 reports error BC31429: 'Bar' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. ' Roslyn works fine. Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Sub Main Dim bar As New Container1.Bar() bar.bar1() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation1, expectedOutput:= <![CDATA[ Container1.Bar Container1.Bar.bar1 ]]>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Sub Main Container1.Bar.bar1() System.Console.WriteLine(Container1.bar) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation2, <expected> BC31429: 'bar' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. Container1.Bar.bar1() ~~~~~~~~~~~~~~ BC31429: 'bar' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(Container1.bar) ~~~~~~~~~~~~~~ </expected>) End Sub <Fact()> Public Sub TypeLessAccessibleThanField_1() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .class auto ansi nested family beforefieldinit Bar extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Container1.Bar" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Bar::.ctor .method public hidebysig static void bar1() cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container1.Bar.bar1" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Bar::bar1 } // end of class Bar .field public static string bar .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container1::.ctor .method private hidebysig specialname rtspecialname static void .cctor() cil managed { // Code size 11 (0xb) .maxstack 8 IL_0000: ldstr "Container1.bar" IL_0005: stsfld string Container1::bar IL_000a: ret } // end of method Container1::.cctor } // end of class Container1 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container1 Sub Test() System.Console.WriteLine("Test.Test") Dim bar As New Bar() bar.bar1() System.Console.WriteLine(MyBase.bar) End Sub End Class Sub Main System.Console.WriteLine(Container1.bar) Dim t1 As New Test() t1.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) ' !!! Difference with Dev10 - less accessible type wins in type-only context. CompileAndVerify(compilation1, expectedOutput:= <![CDATA[ Container1.bar Test.Test Container1.Bar Container1.Bar.bar1 Container1.bar ]]>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container1 Sub Test() MyBase.Bar.bar1() End Sub End Class Sub Main Dim bar As New Container1.Bar() bar.bar1() Container1.Bar.bar1() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation2, <expected> BC30456: 'bar1' is not a member of 'String'. MyBase.Bar.bar1() ~~~~~~~~~~~~~~~ BC30389: 'Container1.Bar' is not accessible in this context because it is 'Protected'. Dim bar As New Container1.Bar() ~~~~~~~~~~~~~~ BC30456: 'bar1' is not a member of 'String'. Container1.Bar.bar1() ~~~~~~~~~~~~~~~~~~~ </expected>) End Sub <Fact()> Public Sub NamespaceAndPublicTypeDifferByCase_1() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1.Bar extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Container1.Bar" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Bar::.ctor } // end of class Container1.Bar .class public auto ansi beforefieldinit Container1.bar.Baz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Container1.bar.Baz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Baz::.ctor } // end of class Container1.bar.Baz ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Sub Main Dim bar1 As New Container1.bar() Dim bar2 As New Container1.bar.Baz() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC30560: 'bar' is ambiguous in the namespace 'Container1'. Dim bar1 As New Container1.bar() ~~~~~~~~~~~~~~ BC30560: 'bar' is ambiguous in the namespace 'Container1'. Dim bar2 As New Container1.bar.Baz() ~~~~~~~~~~~~~~ </expected>) End Sub <Fact()> Public Sub NamespaceAndFriendTypeDifferByCase_1() Dim customIL = <![CDATA[ .class private auto ansi beforefieldinit Container1.Bar extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Container1.Bar" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Bar::.ctor } // end of class Container1.Bar .class public auto ansi beforefieldinit Container1.bar.Baz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Container1.bar.Baz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Baz::.ctor } // end of class Container1.bar.Baz ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Sub Main Dim bar1 As New Container1.bar() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC30182: Type expected. Dim bar1 As New Container1.bar() ~~~~~~~~~~~~~~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Sub Main Dim bar2 As New Container1.bar.Baz() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation2, expectedOutput:= <![CDATA[ Container1.bar.Baz ]]>) End Sub <Fact()> Public Sub NamespaceAndFriendTypeDifferByCase_2() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [mscorlib]System.Runtime.CompilerServices.InternalsVisibleToAttribute::.ctor(string) = ( 01 00 13 43 6F 6E 73 6F 6C 65 41 70 70 6C 69 63 // ...ConsoleApplic 61 74 69 6F 6E 31 00 00 ) // ation1.. } .module '<<GeneratedFileName>>.dll' .class private auto ansi beforefieldinit Container4.Container5 extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Container6 extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Container4.Container5.Container6" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Container6::.ctor } // end of class Container6 .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container5::.ctor } // end of class Container4.Container5 .class public auto ansi beforefieldinit Container4.ContaineR5.Container6 extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Container4.ContaineR5.Container6" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Container6::.ctor } // end of class Container4.ContaineR5.Container6 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As New Container4.ContaineR5.Container6() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation1, expectedOutput:= <![CDATA[ Container4.ContaineR5.Container6 ]]>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As New Container4.ContaineR5.Container6() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation2, expectedOutput:= <![CDATA[ Container4.ContaineR5.Container6 ]]>) End Sub <Fact()> Public Sub NamespaceAndTypesDifferByCase_1() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [mscorlib]System.Runtime.CompilerServices.InternalsVisibleToAttribute::.ctor(string) = ( 01 00 13 43 6F 6E 73 6F 6C 65 41 70 70 6C 69 63 // ...ConsoleApplic 61 74 69 6F 6E 31 00 00 ) // ation1.. } .module '<<GeneratedFileName>>.dll' .class private auto ansi beforefieldinit bbxxx extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbxxx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbxxx::.ctor } // end of class bbxxx .class public auto ansi beforefieldinit bbxxy extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbxxy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbxxy::.ctor } // end of class bbxxy .class private auto ansi beforefieldinit bbxxz extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbxxz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbxxz::.ctor } // end of class bbxxz .class public auto ansi beforefieldinit bBxxz.Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bBxxz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class bBxxz.Test .class public auto ansi beforefieldinit bbxyx extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbxyx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbxyx::.ctor } // end of class bbxyx .class public auto ansi beforefieldinit bBxyx.Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bBxyx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class bBxyx.Test .class private auto ansi beforefieldinit bbxyy extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbxyy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbxyy::.ctor } // end of class bbxyy .class private auto ansi beforefieldinit Bbxyy extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 Bbxyy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Bbxyy::.ctor } // end of class Bbxyy .class public auto ansi beforefieldinit bBxyy.Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bBxyy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class bBxyy.Test .class public auto ansi beforefieldinit bbxyz extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbxyz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbxyz::.ctor } // end of class bbxyz .class private auto ansi beforefieldinit Bbxyz extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 Bbxyz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Bbxyz::.ctor } // end of class Bbxyz .class public auto ansi beforefieldinit bBxyz.Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bBxyz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class bBxyz.Test .class private auto ansi beforefieldinit Bbxzx extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 Bbxzx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Bbxzx::.ctor } // end of class Bbxzx .class public auto ansi beforefieldinit bbxzx extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbxzx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbxzx::.ctor } // end of class bbxzx .class public auto ansi beforefieldinit bBxzx.Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bBxzx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class bBxzx.Test .class private auto ansi beforefieldinit Bbxzy extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 Bbxzy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Bbxzy::.ctor } // end of class Bbxzy .class private auto ansi beforefieldinit BBxzy extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 BBxzy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method BBxzy::.ctor } // end of class BBxzy .class public auto ansi beforefieldinit bbxzy extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbxzy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbxzy::.ctor } // end of class bbxzy .class public auto ansi beforefieldinit bBxzy.Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bBxzy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class bBxzy.Test .class private auto ansi beforefieldinit Bbxzz extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 Bbxzz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Bbxzz::.ctor } // end of class Bbxzz .class public auto ansi beforefieldinit bbxzz extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbxzz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbxzz::.ctor } // end of class bbxzz .class private auto ansi beforefieldinit BBxzz extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 BBxzz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method BBxzz::.ctor } // end of class BBxzz .class public auto ansi beforefieldinit bBxzz.Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bBxzz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class bBxzz.Test .class public auto ansi beforefieldinit bbyxx extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbyxx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbyxx::.ctor } // end of class bbyxx .class private auto ansi beforefieldinit Bbyxx extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 Bbyxx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Bbyxx::.ctor } // end of class Bbyxx .class private auto ansi beforefieldinit BByxx extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 BByxx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method BByxx::.ctor } // end of class BByxx .class public auto ansi beforefieldinit bByxx.Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bByxx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class bByxx.Test .class public auto ansi beforefieldinit bbyxy extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbyxy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbyxy::.ctor } // end of class bbyxy .class public auto ansi beforefieldinit Bbyxy extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 Bbyxy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Bbyxy::.ctor } // end of class Bbyxy .class private auto ansi beforefieldinit BByxy extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 BByxy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method BByxy::.ctor } // end of class BByxy .class public auto ansi beforefieldinit bByxy.Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bByxy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class bByxy.Test .class public auto ansi beforefieldinit bbyxz extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbyxz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbyxz::.ctor } // end of class bbyxz .class private auto ansi beforefieldinit BByxz extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 BByxz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method BByxz::.ctor } // end of class BByxz .class public auto ansi beforefieldinit Bbyxz extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 Bbyxz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Bbyxz::.ctor } // end of class Bbyxz .class public auto ansi beforefieldinit bByxz.Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bByxz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class bByxz.Test .class private auto ansi beforefieldinit BByyx extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 BByyx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method BByyx::.ctor } // end of class BByyx .class public auto ansi beforefieldinit bbyyx extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bbyyx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method bbyyx::.ctor } // end of class bbyyx .class public auto ansi beforefieldinit Bbyyx extends [mscorlib]System.Object { .class auto ansi nested public beforefieldinit Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 Bbyyx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class Test .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Bbyyx::.ctor } // end of class Bbyyx .class public auto ansi beforefieldinit bByyx.Test extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "1 bByyx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Test::.ctor } // end of class bByyx.Test ]]> Dim ilAssemblyRef1 As MetadataReference = Nothing Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxx.Test() c = New bBxyx.Test() c = New bBxyz.Test() c = New bBxzx.Test() c = New bBxzy.Test() c = New bBxzz.Test() c = New bByxx.Test() c = New bByxy.Test() c = New bByxz.Test() c = New bByyx.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe, ilReference:=ilAssemblyRef1) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC30389: 'bbxxx' is not accessible in this context because it is 'Friend'. c = New bbxxx.Test() ~~~~~ BC30554: 'bbxyx' is ambiguous. c = New bBxyx.Test() ~~~~~ BC30554: 'bbxyz' is ambiguous. c = New bBxyz.Test() ~~~~~ BC30554: 'bbxzx' is ambiguous. c = New bBxzx.Test() ~~~~~ BC30554: 'bbxzy' is ambiguous. c = New bBxzy.Test() ~~~~~ BC30554: 'bbxzz' is ambiguous. c = New bBxzz.Test() ~~~~~ BC30554: 'bbyxx' is ambiguous. c = New bByxx.Test() ~~~~~ BC30554: 'bbyxy' is ambiguous. c = New bByxy.Test() ~~~~~ BC30554: 'bbyxz' is ambiguous. c = New bByxz.Test() ~~~~~ BC30554: 'bbyyx' is ambiguous. c = New bByyx.Test() ~~~~~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxy.Test() c = New bBxxz.Test() c = New bBxyy.Test() End Sub End Module </file> </compilation>, references:={ilAssemblyRef1}, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation2, expectedOutput:= <![CDATA[ 1 bbxxy 1 bBxxz 1 bBxyy ]]>) Dim compilation3 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bBxyx.Test() c = New bBxyz.Test() c = New bBxzx.Test() c = New bBxzy.Test() c = New bBxzz.Test() c = New bByxx.Test() c = New bByxy.Test() c = New bByxz.Test() c = New bByyx.Test() End Sub End Module </file> </compilation>, references:={ilAssemblyRef1}, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation3, <expected> BC30554: 'bbxyx' is ambiguous. c = New bBxyx.Test() ~~~~~ BC30554: 'bbxyz' is ambiguous. c = New bBxyz.Test() ~~~~~ BC30554: 'bbxzx' is ambiguous. c = New bBxzx.Test() ~~~~~ BC30554: 'bbxzy' is ambiguous. c = New bBxzy.Test() ~~~~~ BC30554: 'bbxzz' is ambiguous. c = New bBxzz.Test() ~~~~~ BC30554: 'bbyxx' is ambiguous. c = New bByxx.Test() ~~~~~ BC30554: 'bbyxy' is ambiguous. c = New bByxy.Test() ~~~~~ BC30554: 'bbyxz' is ambiguous. c = New bByxz.Test() ~~~~~ BC30554: 'bbyyx' is ambiguous. c = New bByyx.Test() ~~~~~ </expected>) Dim compilation4 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxx.Test() c = New bbxxy.Test() c = New bBxxz.Test() c = New bBxyy.Test() End Sub End Module </file> </compilation>, references:={ilAssemblyRef1}, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation4, expectedOutput:= <![CDATA[ 1 bbxxx 1 bbxxy 1 bBxxz 1 bBxyy ]]>) Dim vbCompilationToRef = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntime( <compilation name="VBLibrary"> <file name="a.vb"> Namespace BBxxx Public Class Test Public Sub New() System.Console.WriteLine("2 BBxxx.Test") End Sub End Class End Namespace Namespace BBxxy Public Class Test Public Sub New() System.Console.WriteLine("2 BBxxy.Test") End Sub End Class End Namespace Namespace BBxxz Public Class Test Public Sub New() System.Console.WriteLine("2 BBxxz.Test") End Sub End Class Public Class Test1 Public Sub New() System.Console.WriteLine("2 BBxxz.Test1") End Sub End Class End Namespace Namespace BBxyx Public Class Test Public Sub New() System.Console.WriteLine("2 BBxyx.Test") End Sub End Class End Namespace Namespace BBxyy Public Class Test Public Sub New() System.Console.WriteLine("2 BBxyy.Test") End Sub End Class Public Class Test1 Public Sub New() System.Console.WriteLine("2 BBxyy.Test1") End Sub End Class End Namespace Namespace BBxyz Public Class Test Public Sub New() System.Console.WriteLine("2 BBxyz.Test") End Sub End Class End Namespace Namespace BBxzx Public Class Test Public Sub New() System.Console.WriteLine("2 BBxzx.Test") End Sub End Class End Namespace Namespace BBxzy Public Class Test Public Sub New() System.Console.WriteLine("2 BBxzy.Test") End Sub End Class End Namespace Namespace BBxzz Public Class Test Public Sub New() System.Console.WriteLine("2 BBxzz.Test") End Sub End Class End Namespace Namespace BByxx Public Class Test Public Sub New() System.Console.WriteLine("2 BByxx.Test") End Sub End Class End Namespace Namespace BByxy Public Class Test Public Sub New() System.Console.WriteLine("2 BByxy.Test") End Sub End Class End Namespace Namespace BByxz Public Class Test Public Sub New() System.Console.WriteLine("2 BByxz.Test") End Sub End Class End Namespace Namespace BByyx Public Class Test Public Sub New() System.Console.WriteLine("2 BByyx.Test") End Sub End Class End Namespace </file> </compilation>, TestOptions.ReleaseDll) Dim vbCompilationRef = New VisualBasicCompilationReference(vbCompilationToRef) If True Then Dim compilation5 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxy.Test() c = New bBxxz.Test() c = New bBxyx.Test() c = New bBxyy.Test() c = New bBxyz.Test() c = New bBxzx.Test() c = New bBxzy.Test() c = New bBxzz.Test() c = New bByxx.Test() c = New bByxy.Test() c = New bByxz.Test() c = New bByyx.Test() End Sub End Module </file> </compilation>, references:={ilAssemblyRef1, vbCompilationRef}, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation5, <expected> BC30554: 'bbxxy' is ambiguous. c = New bbxxy.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'bBxxz'. c = New bBxxz.Test() ~~~~~~~~~~ BC30554: 'bbxyx' is ambiguous. c = New bBxyx.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'bBxyy'. c = New bBxyy.Test() ~~~~~~~~~~ BC30554: 'bbxyz' is ambiguous. c = New bBxyz.Test() ~~~~~ BC30554: 'bbxzx' is ambiguous. c = New bBxzx.Test() ~~~~~ BC30554: 'bbxzy' is ambiguous. c = New bBxzy.Test() ~~~~~ BC30554: 'bbxzz' is ambiguous. c = New bBxzz.Test() ~~~~~ BC30554: 'bbyxx' is ambiguous. c = New bByxx.Test() ~~~~~ BC30554: 'bbyxy' is ambiguous. c = New bByxy.Test() ~~~~~ BC30554: 'bbyxz' is ambiguous. c = New bByxz.Test() ~~~~~ BC30554: 'bbyyx' is ambiguous. c = New bByyx.Test() ~~~~~ </expected>) Dim compilation6 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxx.Test() c = New bBxxz.Test1() c = New bBxyy.Test1() End Sub End Module </file> </compilation>, references:={ilAssemblyRef1, vbCompilationRef}, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation6, expectedOutput:= <![CDATA[ 2 BBxxx.Test 2 BBxxz.Test1 2 BBxyy.Test1 ]]>) Dim compilation7 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxx.Test() c = New bbxxy.Test() c = New bBxxz.Test() c = New bBxyx.Test() c = New bBxyy.Test() c = New bBxyz.Test() c = New bBxzx.Test() c = New bBxzy.Test() c = New bBxzz.Test() c = New bByxx.Test() c = New bByxy.Test() c = New bByxz.Test() c = New bByyx.Test() End Sub End Module </file> </compilation>, references:={ilAssemblyRef1, vbCompilationRef}, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation7, <expected> BC30554: 'bbxxx' is ambiguous. c = New bbxxx.Test() ~~~~~ BC30554: 'bbxxy' is ambiguous. c = New bbxxy.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'bBxxz'. c = New bBxxz.Test() ~~~~~~~~~~ BC30554: 'bbxyx' is ambiguous. c = New bBxyx.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'bBxyy'. c = New bBxyy.Test() ~~~~~~~~~~ BC30554: 'bbxyz' is ambiguous. c = New bBxyz.Test() ~~~~~ BC30554: 'bbxzx' is ambiguous. c = New bBxzx.Test() ~~~~~ BC30554: 'bbxzy' is ambiguous. c = New bBxzy.Test() ~~~~~ BC30554: 'bbxzz' is ambiguous. c = New bBxzz.Test() ~~~~~ BC30554: 'bbyxx' is ambiguous. c = New bByxx.Test() ~~~~~ BC30554: 'bbyxy' is ambiguous. c = New bByxy.Test() ~~~~~ BC30554: 'bbyxz' is ambiguous. c = New bByxz.Test() ~~~~~ BC30554: 'bbyyx' is ambiguous. c = New bByyx.Test() ~~~~~ </expected>) Dim compilation8 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bBxxz.Test1() c = New bBxyy.Test1() End Sub End Module </file> </compilation>, references:={ilAssemblyRef1, vbCompilationRef}, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation8, expectedOutput:= <![CDATA[ 2 BBxxz.Test1 2 BBxyy.Test1 ]]>) End If If True Then Dim compilation5 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxy.Test() c = New bBxxz.Test() c = New bBxyx.Test() c = New bBxyy.Test() c = New bBxyz.Test() c = New bBxzx.Test() c = New bBxzy.Test() c = New bBxzz.Test() c = New bByxx.Test() c = New bByxy.Test() c = New bByxz.Test() c = New bByyx.Test() End Sub End Module </file> </compilation>, references:={vbCompilationRef, ilAssemblyRef1}, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation5, <expected> BC30554: 'bbxxy' is ambiguous. c = New bbxxy.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'BBxxz'. c = New bBxxz.Test() ~~~~~~~~~~ BC30554: 'bbxyx' is ambiguous. c = New bBxyx.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'BBxyy'. c = New bBxyy.Test() ~~~~~~~~~~ BC30554: 'bbxyz' is ambiguous. c = New bBxyz.Test() ~~~~~ BC30554: 'bbxzx' is ambiguous. c = New bBxzx.Test() ~~~~~ BC30554: 'bbxzy' is ambiguous. c = New bBxzy.Test() ~~~~~ BC30554: 'bbxzz' is ambiguous. c = New bBxzz.Test() ~~~~~ BC30554: 'bbyxx' is ambiguous. c = New bByxx.Test() ~~~~~ BC30554: 'bbyxy' is ambiguous. c = New bByxy.Test() ~~~~~ BC30554: 'bbyxz' is ambiguous. c = New bByxz.Test() ~~~~~ BC30554: 'bbyyx' is ambiguous. c = New bByyx.Test() ~~~~~ </expected>) Dim compilation6 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxx.Test() c = New bBxxz.Test1() c = New bBxyy.Test1() End Sub End Module </file> </compilation>, references:={vbCompilationRef, ilAssemblyRef1}, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation6, expectedOutput:= <![CDATA[ 2 BBxxx.Test 2 BBxxz.Test1 2 BBxyy.Test1 ]]>) Dim compilation7 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxx.Test() c = New bbxxy.Test() c = New bBxxz.Test() c = New bBxyx.Test() c = New bBxyy.Test() c = New bBxyz.Test() c = New bBxzx.Test() c = New bBxzy.Test() c = New bBxzz.Test() c = New bByxx.Test() c = New bByxy.Test() c = New bByxz.Test() c = New bByyx.Test() End Sub End Module </file> </compilation>, references:={vbCompilationRef, ilAssemblyRef1}, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation7, <expected> BC30554: 'bbxxx' is ambiguous. c = New bbxxx.Test() ~~~~~ BC30554: 'bbxxy' is ambiguous. c = New bbxxy.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'BBxxz'. c = New bBxxz.Test() ~~~~~~~~~~ BC30554: 'bbxyx' is ambiguous. c = New bBxyx.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'BBxyy'. c = New bBxyy.Test() ~~~~~~~~~~ BC30554: 'bbxyz' is ambiguous. c = New bBxyz.Test() ~~~~~ BC30554: 'bbxzx' is ambiguous. c = New bBxzx.Test() ~~~~~ BC30554: 'bbxzy' is ambiguous. c = New bBxzy.Test() ~~~~~ BC30554: 'bbxzz' is ambiguous. c = New bBxzz.Test() ~~~~~ BC30554: 'bbyxx' is ambiguous. c = New bByxx.Test() ~~~~~ BC30554: 'bbyxy' is ambiguous. c = New bByxy.Test() ~~~~~ BC30554: 'bbyxz' is ambiguous. c = New bByxz.Test() ~~~~~ BC30554: 'bbyyx' is ambiguous. c = New bByyx.Test() ~~~~~ </expected>) Dim compilation8 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bBxxz.Test1() c = New bBxyy.Test1() End Sub End Module </file> </compilation>, references:={vbCompilationRef, ilAssemblyRef1}, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation8, expectedOutput:= <![CDATA[ 2 BBxxz.Test1 2 BBxyy.Test1 ]]>) End If Dim ilAssemblyRef2 As MetadataReference = Nothing Dim compilation9 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxx.Test() c = New bbxxy.Test() c = New bBxxz.Test() c = New bBxyx.Test() c = New bBxyy.Test() c = New bBxyz.Test() c = New bBxzx.Test() c = New bBxzy.Test() c = New bBxzz.Test() c = New bByxx.Test() c = New bByxy.Test() c = New bByxz.Test() c = New bByyx.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe, ilReference:=ilAssemblyRef2) compilation9 = compilation9.AddReferences(ilAssemblyRef1, vbCompilationRef) CompilationUtils.AssertTheseDiagnostics(compilation9, <expected> BC30554: 'bbxxx' is ambiguous. c = New bbxxx.Test() ~~~~~ BC30554: 'bbxxy' is ambiguous. c = New bbxxy.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'bBxxz'. c = New bBxxz.Test() ~~~~~~~~~~ BC30554: 'bbxyx' is ambiguous. c = New bBxyx.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'bBxyy'. c = New bBxyy.Test() ~~~~~~~~~~ BC30554: 'bbxyz' is ambiguous. c = New bBxyz.Test() ~~~~~ BC30554: 'bbxzx' is ambiguous. c = New bBxzx.Test() ~~~~~ BC30554: 'bbxzy' is ambiguous. c = New bBxzy.Test() ~~~~~ BC30554: 'bbxzz' is ambiguous. c = New bBxzz.Test() ~~~~~ BC30554: 'bbyxx' is ambiguous. c = New bByxx.Test() ~~~~~ BC30554: 'bbyxy' is ambiguous. c = New bByxy.Test() ~~~~~ BC30554: 'bbyxz' is ambiguous. c = New bByxz.Test() ~~~~~ BC30554: 'bbyyx' is ambiguous. c = New bByyx.Test() ~~~~~ </expected>) Dim compilation10 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxx.Test() c = New bbxxy.Test() c = New bBxxz.Test() c = New bBxyx.Test() c = New bBxyy.Test() c = New bBxyz.Test() c = New bBxzx.Test() c = New bBxzy.Test() c = New bBxzz.Test() c = New bByxx.Test() c = New bByxy.Test() c = New bByxz.Test() c = New bByyx.Test() End Sub End Module </file> </compilation>, references:={ilAssemblyRef2, vbCompilationRef, ilAssemblyRef1}, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation10, <expected> BC30554: 'bbxxx' is ambiguous. c = New bbxxx.Test() ~~~~~ BC30554: 'bbxxy' is ambiguous. c = New bbxxy.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'bBxxz'. c = New bBxxz.Test() ~~~~~~~~~~ BC30554: 'bbxyx' is ambiguous. c = New bBxyx.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'bBxyy'. c = New bBxyy.Test() ~~~~~~~~~~ BC30554: 'bbxyz' is ambiguous. c = New bBxyz.Test() ~~~~~ BC30554: 'bbxzx' is ambiguous. c = New bBxzx.Test() ~~~~~ BC30554: 'bbxzy' is ambiguous. c = New bBxzy.Test() ~~~~~ BC30554: 'bbxzz' is ambiguous. c = New bBxzz.Test() ~~~~~ BC30554: 'bbyxx' is ambiguous. c = New bByxx.Test() ~~~~~ BC30554: 'bbyxy' is ambiguous. c = New bByxy.Test() ~~~~~ BC30554: 'bbyxz' is ambiguous. c = New bByxz.Test() ~~~~~ BC30554: 'bbyyx' is ambiguous. c = New bByyx.Test() ~~~~~ </expected>) Dim compilation11 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxx.Test() c = New bbxxy.Test() c = New bBxxz.Test() c = New bBxyx.Test() c = New bBxyy.Test() c = New bBxyz.Test() c = New bBxzx.Test() c = New bBxzy.Test() c = New bBxzz.Test() c = New bByxx.Test() c = New bByxy.Test() c = New bByxz.Test() c = New bByyx.Test() End Sub End Module </file> </compilation>, references:={vbCompilationRef, ilAssemblyRef2, ilAssemblyRef1}, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation11, <expected> BC30554: 'bbxxx' is ambiguous. c = New bbxxx.Test() ~~~~~ BC30554: 'bbxxy' is ambiguous. c = New bbxxy.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'BBxxz'. c = New bBxxz.Test() ~~~~~~~~~~ BC30554: 'bbxyx' is ambiguous. c = New bBxyx.Test() ~~~~~ BC30560: 'Test' is ambiguous in the namespace 'BBxyy'. c = New bBxyy.Test() ~~~~~~~~~~ BC30554: 'bbxyz' is ambiguous. c = New bBxyz.Test() ~~~~~ BC30554: 'bbxzx' is ambiguous. c = New bBxzx.Test() ~~~~~ BC30554: 'bbxzy' is ambiguous. c = New bBxzy.Test() ~~~~~ BC30554: 'bbxzz' is ambiguous. c = New bBxzz.Test() ~~~~~ BC30554: 'bbyxx' is ambiguous. c = New bByxx.Test() ~~~~~ BC30554: 'bbyxy' is ambiguous. c = New bByxy.Test() ~~~~~ BC30554: 'bbyxz' is ambiguous. c = New bByxz.Test() ~~~~~ BC30554: 'bbyyx' is ambiguous. c = New bByyx.Test() ~~~~~ </expected>) Dim compilation12 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bBxxz.Test1() c = New bBxyy.Test1() End Sub End Module </file> </compilation>, references:={vbCompilationRef, ilAssemblyRef1, ilAssemblyRef2}, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation12, expectedOutput:= <![CDATA[ 2 BBxxz.Test1 2 BBxyy.Test1 ]]>) Dim compilation13 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bBxxz.Test1() c = New bBxyy.Test1() End Sub End Module </file> </compilation>, references:={ilAssemblyRef1, vbCompilationRef, ilAssemblyRef2}, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation13, expectedOutput:= <![CDATA[ 2 BBxxz.Test1 2 BBxyy.Test1 ]]>) Dim compilation14 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bBxxz.Test1() c = New bBxyy.Test1() End Sub End Module </file> </compilation>, references:={ilAssemblyRef1, ilAssemblyRef2, vbCompilationRef}, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation14, expectedOutput:= <![CDATA[ 2 BBxxz.Test1 2 BBxyy.Test1 ]]>) Dim compilation15 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxx.Test() c = New bbxxy.Test() c = New bBxxz.Test() c = New bBxyx.Test() c = New bBxyy.Test() c = New bBxyz.Test() c = New bBxzx.Test() c = New bBxzy.Test() c = New bBxzz.Test() c = New bByxx.Test() c = New bByxy.Test() c = New bByxz.Test() c = New bByyx.Test() End Sub End Module Namespace BBxxx Public Class Test Public Sub New() System.Console.WriteLine("3 BBxxx.Test") End Sub End Class End Namespace Namespace BBxxy Public Class Test Public Sub New() System.Console.WriteLine("3 BBxxy.Test") End Sub End Class End Namespace Namespace BBxxz Public Class Test Public Sub New() System.Console.WriteLine("3 BBxxz.Test") End Sub End Class End Namespace Namespace BBxyx Public Class Test Public Sub New() System.Console.WriteLine("3 BBxyx.Test") End Sub End Class End Namespace Namespace BBxyy Public Class Test Public Sub New() System.Console.WriteLine("3 BBxyy.Test") End Sub End Class End Namespace Namespace BBxyz Public Class Test Public Sub New() System.Console.WriteLine("3 BBxyz.Test") End Sub End Class End Namespace Namespace BBxzx Public Class Test Public Sub New() System.Console.WriteLine("3 BBxzx.Test") End Sub End Class End Namespace Namespace BBxzy Public Class Test Public Sub New() System.Console.WriteLine("3 BBxzy.Test") End Sub End Class End Namespace Namespace BBxzz Public Class Test Public Sub New() System.Console.WriteLine("3 BBxzz.Test") End Sub End Class End Namespace Namespace BByxx Public Class Test Public Sub New() System.Console.WriteLine("3 BByxx.Test") End Sub End Class End Namespace Namespace BByxy Public Class Test Public Sub New() System.Console.WriteLine("3 BByxy.Test") End Sub End Class End Namespace Namespace BByxz Public Class Test Public Sub New() System.Console.WriteLine("3 BByxz.Test") End Sub End Class End Namespace Namespace BByyx Public Class Test Public Sub New() System.Console.WriteLine("3 BByyx.Test") End Sub End Class End Namespace </file> </compilation>, references:={ilAssemblyRef1, vbCompilationRef, ilAssemblyRef2}, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation15, expectedOutput:= <![CDATA[ 3 BBxxx.Test 3 BBxxy.Test 3 BBxxz.Test 3 BBxyx.Test 3 BBxyy.Test 3 BBxyz.Test 3 BBxzx.Test 3 BBxzy.Test 3 BBxzz.Test 3 BByxx.Test 3 BByxy.Test 3 BByxz.Test 3 BByyx.Test ]]>) Dim compilation16 = CompilationUtils.CreateCompilationWithMscorlib40AndVBRuntimeAndReferences( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New bbxxx.Test() c = New bbxxy.Test() c = New bBxxz.Test() c = New bBxyx.Test() c = New bBxyy.Test() c = New bBxyz.Test() c = New bBxzx.Test() c = New bBxzy.Test() c = New bBxzz.Test() c = New bByxx.Test() c = New bByxy.Test() c = New bByxz.Test() c = New bByyx.Test() End Sub End Module Class BBxxx Public Class Test Public Sub New() System.Console.WriteLine("4 BBxxx.Test") End Sub End Class End Class Class BBxxy Public Class Test Public Sub New() System.Console.WriteLine("4 BBxxy.Test") End Sub End Class End Class Class BBxxz Public Class Test Public Sub New() System.Console.WriteLine("4 BBxxz.Test") End Sub End Class End Class Class BBxyx Public Class Test Public Sub New() System.Console.WriteLine("4 BBxyx.Test") End Sub End Class End Class Class BBxyy Public Class Test Public Sub New() System.Console.WriteLine("4 BBxyy.Test") End Sub End Class End Class Class BBxyz Public Class Test Public Sub New() System.Console.WriteLine("4 BBxyz.Test") End Sub End Class End Class Class BBxzx Public Class Test Public Sub New() System.Console.WriteLine("4 BBxzx.Test") End Sub End Class End Class Class BBxzy Public Class Test Public Sub New() System.Console.WriteLine("4 BBxzy.Test") End Sub End Class End Class Class BBxzz Public Class Test Public Sub New() System.Console.WriteLine("4 BBxzz.Test") End Sub End Class End Class Class BByxx Public Class Test Public Sub New() System.Console.WriteLine("4 BByxx.Test") End Sub End Class End Class Class BByxy Public Class Test Public Sub New() System.Console.WriteLine("4 BByxy.Test") End Sub End Class End Class Class BByxz Public Class Test Public Sub New() System.Console.WriteLine("4 BByxz.Test") End Sub End Class End Class Class BByyx Public Class Test Public Sub New() System.Console.WriteLine("4 BByyx.Test") End Sub End Class End Class </file> </compilation>, references:={ilAssemblyRef1, vbCompilationRef, ilAssemblyRef2}, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation16, expectedOutput:= <![CDATA[ 4 BBxxx.Test 4 BBxxy.Test 4 BBxxz.Test 4 BBxyx.Test 4 BBxyy.Test 4 BBxyz.Test 4 BBxzx.Test 4 BBxzy.Test 4 BBxzz.Test 4 BByxx.Test 4 BByxy.Test 4 BByxz.Test 4 BByyx.Test ]]>) End Sub <Fact()> Public Sub MembersDifferByKindAndAccessibility_2() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .field family string aa1 .field family string aa2 .field family string aa3 .field family string aa4 .field family string aa5 .field family string aa6 .field public string aa10 .field public string aa20 .field public string aa30 .field public string aa40 .field public string aa50 .field public string aa60 .field public string aa100 .field public string aa200 .field public string aa300 .field public string aa400 .field public string aa500 .field public string aa600 .method family hidebysig instance string Aa1() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa1" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa1 .method public hidebysig instance string aA1(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA1" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA1 .method public hidebysig instance string aA2(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA2" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA2 .method family hidebysig instance string Aa2() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa2" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa2 .method family hidebysig instance string Aa3() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa3" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa3 .method public hidebysig instance string aA3(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA3" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA3 .method family hidebysig instance string Aa4() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa4" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa4 .method public hidebysig instance string aA4(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA4" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA4 .method public hidebysig instance string aA5(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA5" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA5 .method family hidebysig instance string Aa5() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa5" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa5 .method public hidebysig instance string aA6(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA6" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA6 .method family hidebysig instance string Aa6() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa6" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa6 .method family hidebysig instance string Aa10() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa10" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa10 .method public hidebysig instance string aA10(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA10" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA10 .method public hidebysig instance string aA20(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA20" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA20 .method family hidebysig instance string Aa20() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa20" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa20 .method family hidebysig instance string Aa30() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa30" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa30 .method public hidebysig instance string aA30(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA30" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA30 .method family hidebysig instance string Aa40() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa40" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa40 .method public hidebysig instance string aA40(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA40" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA40 .method public hidebysig instance string aA50(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA50" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA50 .method family hidebysig instance string Aa50() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa50" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa50 .method public hidebysig instance string aA60(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA60" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA60 .method family hidebysig instance string Aa60() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa60" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa60 .method family hidebysig instance string Aa100() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa100" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa100 .method family hidebysig instance string aA100(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA100" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA100 .method family hidebysig instance string aA200(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA200" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA200 .method family hidebysig instance string Aa200() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa200" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa200 .method family hidebysig instance string Aa300() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa300" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa300 .method family hidebysig instance string aA300(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA300" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA300 .method family hidebysig instance string Aa400() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa400" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa400 .method family hidebysig instance string aA400(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA400" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA400 .method family hidebysig instance string aA500(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA500" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA500 .method family hidebysig instance string Aa500() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa500" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa500 .method family hidebysig instance string aA600(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.aA600" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::aA600 .method family hidebysig instance string Aa600() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aa600" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::Aa600 .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 206 (0xce) .maxstack 2 IL_0000: ldarg.0 IL_0001: ldstr "Container1.aa1" IL_0006: stfld string Container1::aa1 IL_000b: ldarg.0 IL_000c: ldstr "Container1.aa2" IL_0011: stfld string Container1::aa2 IL_0016: ldarg.0 IL_0017: ldstr "Container1.aa3" IL_001c: stfld string Container1::aa3 IL_0021: ldarg.0 IL_0022: ldstr "Container1.aa4" IL_0027: stfld string Container1::aa4 IL_002c: ldarg.0 IL_002d: ldstr "Container1.aa5" IL_0032: stfld string Container1::aa5 IL_0037: ldarg.0 IL_0038: ldstr "Container1.aa6" IL_003d: stfld string Container1::aa6 IL_0042: ldarg.0 IL_0043: ldstr "Container1.aa10" IL_0048: stfld string Container1::aa10 IL_004d: ldarg.0 IL_004e: ldstr "Container1.aa20" IL_0053: stfld string Container1::aa20 IL_0058: ldarg.0 IL_0059: ldstr "Container1.aa30" IL_005e: stfld string Container1::aa30 IL_0063: ldarg.0 IL_0064: ldstr "Container1.aa40" IL_0069: stfld string Container1::aa40 IL_006e: ldarg.0 IL_006f: ldstr "Container1.aa50" IL_0074: stfld string Container1::aa50 IL_0079: ldarg.0 IL_007a: ldstr "Container1.aa60" IL_007f: stfld string Container1::aa60 IL_0084: ldarg.0 IL_0085: ldstr "Container1.aa100" IL_008a: stfld string Container1::aa100 IL_008f: ldarg.0 IL_0090: ldstr "Container1.aa200" IL_0095: stfld string Container1::aa200 IL_009a: ldarg.0 IL_009b: ldstr "Container1.aa300" IL_00a0: stfld string Container1::aa300 IL_00a5: ldarg.0 IL_00a6: ldstr "Container1.aa400" IL_00ab: stfld string Container1::aa400 IL_00b0: ldarg.0 IL_00b1: ldstr "Container1.aa500" IL_00b6: stfld string Container1::aa500 IL_00bb: ldarg.0 IL_00bc: ldstr "Container1.aa600" IL_00c1: stfld string Container1::aa600 IL_00c6: ldarg.0 IL_00c7: call instance void [mscorlib]System.Object::.ctor() IL_00cc: nop IL_00cd: ret } // end of method Container1::.ctor } // end of class Container1 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container1 Sub Test() System.Console.WriteLine("Test.Test") System.Console.WriteLine(Aa10) System.Console.WriteLine(aA10(1)) System.Console.WriteLine(aA20) System.Console.WriteLine(aA20(1)) System.Console.WriteLine(Aa30) System.Console.WriteLine(aA30(1)) System.Console.WriteLine(Aa40) System.Console.WriteLine(aA40(1)) System.Console.WriteLine(aA50) System.Console.WriteLine(aA50(1)) System.Console.WriteLine(aA60) System.Console.WriteLine(aA60(1)) End Sub End Class Sub Main Dim c As New Container1() System.Console.WriteLine(c.Aa10) System.Console.WriteLine(c.aA10(1)) System.Console.WriteLine(c.aA20) System.Console.WriteLine(c.aA20(1)) System.Console.WriteLine(c.Aa30) System.Console.WriteLine(c.aA30(1)) System.Console.WriteLine(c.Aa40) System.Console.WriteLine(c.aA40(1)) System.Console.WriteLine(c.aA50) System.Console.WriteLine(c.aA50(1)) System.Console.WriteLine(c.aA60) System.Console.WriteLine(c.aA60(1)) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC31429: 'aA10' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(Aa10) ~~~~ BC31429: 'aA10' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(aA10(1)) ~~~~ BC31429: 'aA20' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(aA20) ~~~~ BC31429: 'aA20' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(aA20(1)) ~~~~ BC31429: 'aA30' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(Aa30) ~~~~ BC31429: 'aA30' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(aA30(1)) ~~~~ BC31429: 'aA40' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(Aa40) ~~~~ BC31429: 'aA40' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(aA40(1)) ~~~~ BC31429: 'aA50' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(aA50) ~~~~ BC31429: 'aA50' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(aA50(1)) ~~~~ BC31429: 'aA60' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(aA60) ~~~~ BC31429: 'aA60' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(aA60(1)) ~~~~ BC31429: 'aA10' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.Aa10) ~~~~~~ BC31429: 'aA10' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.aA10(1)) ~~~~~~ BC31429: 'aA20' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.aA20) ~~~~~~ BC31429: 'aA20' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.aA20(1)) ~~~~~~ BC31429: 'aA30' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.Aa30) ~~~~~~ BC31429: 'aA30' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.aA30(1)) ~~~~~~ BC31429: 'aA40' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.Aa40) ~~~~~~ BC31429: 'aA40' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.aA40(1)) ~~~~~~ BC31429: 'aA50' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.aA50) ~~~~~~ BC31429: 'aA50' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.aA50(1)) ~~~~~~ BC31429: 'aA60' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.aA60) ~~~~~~ BC31429: 'aA60' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.aA60(1)) ~~~~~~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container1 Sub Test() System.Console.WriteLine("Test.Test") System.Console.WriteLine(aa100) System.Console.WriteLine(aa100(1)) System.Console.WriteLine(aa200) System.Console.WriteLine(aa200(1)) System.Console.WriteLine(aa300) System.Console.WriteLine(aa300(1)) System.Console.WriteLine(aa400) System.Console.WriteLine(aa400(1)) System.Console.WriteLine(aa500) System.Console.WriteLine(aa500(1)) System.Console.WriteLine(aa600) System.Console.WriteLine(aa600(1)) End Sub End Class Sub Main Dim c As New Container1() System.Console.WriteLine(c.aa100) System.Console.WriteLine(c.aa100(1)) System.Console.WriteLine(c.aa200) System.Console.WriteLine(c.aa200(1)) System.Console.WriteLine(c.aa300) System.Console.WriteLine(c.aa300(1)) System.Console.WriteLine(c.aa400) System.Console.WriteLine(c.aa400(1)) System.Console.WriteLine(c.aa500) System.Console.WriteLine(c.aa500(1)) System.Console.WriteLine(c.aa600) System.Console.WriteLine(c.aa600(1)) Dim t1 As New Test() t1.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation2, expectedOutput:= <![CDATA[ Container1.aa100 o Container1.aa200 o Container1.aa300 o Container1.aa400 o Container1.aa500 o Container1.aa600 o Test.Test Container1.aa100 o Container1.aa200 o Container1.aa300 o Container1.aa400 o Container1.aa500 o Container1.aa600 o ]]>) Dim compilation3 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container1 Sub Test() System.Console.WriteLine("Test.Test") System.Console.WriteLine(aA1(1)) System.Console.WriteLine(aA2(1)) System.Console.WriteLine(aA3(1)) System.Console.WriteLine(aA4(1)) System.Console.WriteLine(aA5(1)) System.Console.WriteLine(aA6(1)) End Sub End Class Sub Main Dim c As New Container1() System.Console.WriteLine(c.aA1(1)) System.Console.WriteLine(c.aA2(1)) System.Console.WriteLine(c.aA3(1)) System.Console.WriteLine(c.aA4(1)) System.Console.WriteLine(c.aA5(1)) System.Console.WriteLine(c.aA6(1)) Dim t1 As New Test() t1.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation3, expectedOutput:= <![CDATA[ Container1.aA1 Container1.aA2 Container1.aA3 Container1.aA4 Container1.aA5 Container1.aA6 Test.Test Container1.aA1 Container1.aA2 Container1.aA3 Container1.aA4 Container1.aA5 Container1.aA6 ]]>) Dim compilation4 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container1 Sub Test() System.Console.WriteLine("Test.Test") System.Console.WriteLine(Aa1) System.Console.WriteLine(aA2) System.Console.WriteLine(Aa3) System.Console.WriteLine(Aa4) System.Console.WriteLine(aA5) System.Console.WriteLine(aA6) End Sub End Class Sub Main Dim c As New Container1() System.Console.WriteLine(c.Aa1) System.Console.WriteLine(c.aA2) System.Console.WriteLine(c.Aa3) System.Console.WriteLine(c.Aa4) System.Console.WriteLine(c.aA5) System.Console.WriteLine(c.aA6) Dim t1 As New Test() t1.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation4, <expected> BC30455: Argument not specified for parameter 'x' of 'Public Overloads Function aA1(x As Integer) As String'. System.Console.WriteLine(Aa1) ~~~ BC30455: Argument not specified for parameter 'x' of 'Public Overloads Function aA2(x As Integer) As String'. System.Console.WriteLine(aA2) ~~~ BC30455: Argument not specified for parameter 'x' of 'Public Overloads Function aA3(x As Integer) As String'. System.Console.WriteLine(Aa3) ~~~ BC30455: Argument not specified for parameter 'x' of 'Public Overloads Function aA4(x As Integer) As String'. System.Console.WriteLine(Aa4) ~~~ BC30455: Argument not specified for parameter 'x' of 'Public Overloads Function aA5(x As Integer) As String'. System.Console.WriteLine(aA5) ~~~ BC30455: Argument not specified for parameter 'x' of 'Public Overloads Function aA6(x As Integer) As String'. System.Console.WriteLine(aA6) ~~~ BC30455: Argument not specified for parameter 'x' of 'Public Overloads Function aA1(x As Integer) As String'. System.Console.WriteLine(c.Aa1) ~~~ BC30455: Argument not specified for parameter 'x' of 'Public Overloads Function aA2(x As Integer) As String'. System.Console.WriteLine(c.aA2) ~~~ BC30455: Argument not specified for parameter 'x' of 'Public Overloads Function aA3(x As Integer) As String'. System.Console.WriteLine(c.Aa3) ~~~ BC30455: Argument not specified for parameter 'x' of 'Public Overloads Function aA4(x As Integer) As String'. System.Console.WriteLine(c.Aa4) ~~~ BC30455: Argument not specified for parameter 'x' of 'Public Overloads Function aA5(x As Integer) As String'. System.Console.WriteLine(c.aA5) ~~~ BC30455: Argument not specified for parameter 'x' of 'Public Overloads Function aA6(x As Integer) As String'. System.Console.WriteLine(c.aA6) ~~~ </expected>) End Sub <Fact()> Public Sub TypesDifferByCase_4() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [mscorlib]System.Runtime.CompilerServices.InternalsVisibleToAttribute::.ctor(string) = ( 01 00 13 43 6F 6E 73 6F 6C 65 41 70 70 6C 69 63 // ...ConsoleApplic 61 74 69 6F 6E 31 00 00 ) // ation1.. } .module '<<GeneratedFileName>>.dll' .class public auto ansi beforefieldinit aaxxx extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aaxxx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aaxxx::.ctor } // end of class aaxxx .class private auto ansi beforefieldinit Aaxxx extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Aaxxx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Aaxxx::.ctor } // end of class Aaxxx .class private auto ansi beforefieldinit aAxxx extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aAxxx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aAxxx::.ctor } // end of class aAxxx .class private auto ansi beforefieldinit aaxxy extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aaxxy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aaxxy::.ctor } // end of class aaxxy .class public auto ansi beforefieldinit Aaxxy extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Aaxxy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Aaxxy::.ctor } // end of class Aaxxy .class private auto ansi beforefieldinit aAxxy extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aAxxy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aAxxy::.ctor } // end of class aAxxy .class private auto ansi beforefieldinit aaxxz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aaxxz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aaxxz::.ctor } // end of class aaxxz .class private auto ansi beforefieldinit Aaxxz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Aaxxz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Aaxxz::.ctor } // end of class Aaxxz .class public auto ansi beforefieldinit aAxxz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aAxxz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aAxxz::.ctor } // end of class aAxxz .class private auto ansi beforefieldinit aaxyx extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aaxyx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aaxyx::.ctor } // end of class aaxyx .class public auto ansi beforefieldinit Aaxyx extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Aaxyx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Aaxyx::.ctor } // end of class Aaxyx .class public auto ansi beforefieldinit aAxyx extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aAxyx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aAxyx::.ctor } // end of class aAxyx .class public auto ansi beforefieldinit aaxyy extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aaxyy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aaxyy::.ctor } // end of class aaxyy .class private auto ansi beforefieldinit Aaxyy extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Aaxyy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Aaxyy::.ctor } // end of class Aaxyy .class public auto ansi beforefieldinit aAxyy extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aAxyy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aAxyy::.ctor } // end of class aAxyy .class public auto ansi beforefieldinit aaxyz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aaxyz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aaxyz::.ctor } // end of class aaxyz .class public auto ansi beforefieldinit Aaxyz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Aaxyz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Aaxyz::.ctor } // end of class Aaxyz .class private auto ansi beforefieldinit aAxyz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aAxyz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aAxyz::.ctor } // end of class aAxyz ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New aAxyx() c = New aAxyy() c = New Aaxyz() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC30554: 'Aaxyx' is ambiguous. c = New aAxyx() ~~~~~ BC30554: 'aaxyy' is ambiguous. c = New aAxyy() ~~~~~ BC30554: 'aaxyz' is ambiguous. c = New Aaxyz() ~~~~~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New aaxxx() c = New Aaxxy() c = New aAxxz() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation2, expectedOutput:= <![CDATA[ aaxxx Aaxxy aAxxz ]]>) Dim compilation3 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New aAxyx() c = New aAxyy() c = New Aaxyz() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation3, <expected> BC30554: 'Aaxyx' is ambiguous. c = New aAxyx() ~~~~~ BC30554: 'aaxyy' is ambiguous. c = New aAxyy() ~~~~~ BC30554: 'aaxyz' is ambiguous. c = New Aaxyz() ~~~~~ </expected>) Dim compilation4 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New aaxxx() c = New Aaxxy() c = New aAxxz() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation4, expectedOutput:= <![CDATA[ aaxxx Aaxxy aAxxz ]]>) End Sub <Fact()> Public Sub TypesDifferByCase_5() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [mscorlib]System.Runtime.CompilerServices.InternalsVisibleToAttribute::.ctor(string) = ( 01 00 13 43 6F 6E 73 6F 6C 65 41 70 70 6C 69 63 // ...ConsoleApplic 61 74 69 6F 6E 31 00 00 ) // ation1.. } .module '<<GeneratedFileName>>.dll' .class public auto ansi beforefieldinit Container extends [mscorlib]System.Object { .class nested public auto ansi beforefieldinit aaxxx extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aaxxx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aaxxx::.ctor } // end of class aaxxx .class nested assembly auto ansi beforefieldinit Aaxxx extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Aaxxx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Aaxxx::.ctor } // end of class Aaxxx .class nested assembly auto ansi beforefieldinit aAxxx extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aAxxx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aAxxx::.ctor } // end of class aAxxx .class nested assembly auto ansi beforefieldinit aaxxy extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aaxxy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aaxxy::.ctor } // end of class aaxxy .class nested public auto ansi beforefieldinit Aaxxy extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Aaxxy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Aaxxy::.ctor } // end of class Aaxxy .class nested assembly auto ansi beforefieldinit aAxxy extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aAxxy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aAxxy::.ctor } // end of class aAxxy .class nested assembly auto ansi beforefieldinit aaxxz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aaxxz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aaxxz::.ctor } // end of class aaxxz .class nested assembly auto ansi beforefieldinit Aaxxz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Aaxxz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Aaxxz::.ctor } // end of class Aaxxz .class nested public auto ansi beforefieldinit aAxxz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aAxxz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aAxxz::.ctor } // end of class aAxxz .class nested assembly auto ansi beforefieldinit aaxyx extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aaxyx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aaxyx::.ctor } // end of class aaxyx .class nested public auto ansi beforefieldinit Aaxyx extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Aaxyx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Aaxyx::.ctor } // end of class Aaxyx .class nested public auto ansi beforefieldinit aAxyx extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aAxyx" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aAxyx::.ctor } // end of class aAxyx .class nested public auto ansi beforefieldinit aaxyy extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aaxyy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aaxyy::.ctor } // end of class aaxyy .class nested assembly auto ansi beforefieldinit Aaxyy extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Aaxyy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Aaxyy::.ctor } // end of class Aaxyy .class nested public auto ansi beforefieldinit aAxyy extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aAxyy" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aAxyy::.ctor } // end of class aAxyy .class nested public auto ansi beforefieldinit aaxyz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aaxyz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aaxyz::.ctor } // end of class aaxyz .class nested public auto ansi beforefieldinit Aaxyz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "Aaxyz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method Aaxyz::.ctor } // end of class Aaxyz .class nested assembly auto ansi beforefieldinit aAxyz extends [mscorlib]System.Object { .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 21 (0x15) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: nop IL_0007: nop IL_0008: ldstr "aAxyz" IL_000d: call void [mscorlib]System.Console::WriteLine(string) IL_0012: nop IL_0013: nop IL_0014: ret } // end of method aAxyz::.ctor } // end of class aAxyz .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container::.ctor } // end of class Container ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New Container.aAxyx() c = New Container.aAxyy() c = New Container.Aaxyz() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC31429: 'Aaxyx' is ambiguous because multiple kinds of members with this name exist in class 'Container'. c = New Container.aAxyx() ~~~~~~~~~~~~~~~ BC31429: 'aaxyy' is ambiguous because multiple kinds of members with this name exist in class 'Container'. c = New Container.aAxyy() ~~~~~~~~~~~~~~~ BC31429: 'aaxyz' is ambiguous because multiple kinds of members with this name exist in class 'Container'. c = New Container.Aaxyz() ~~~~~~~~~~~~~~~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New Container.aaxxx() c = New Container.Aaxxy() c = New Container.aAxxz() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation2, expectedOutput:= <![CDATA[ aaxxx Aaxxy aAxxz ]]>) Dim compilation3 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New Container.aAxyx() c = New Container.aAxyy() c = New Container.Aaxyz() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation3, <expected> BC31429: 'Aaxyx' is ambiguous because multiple kinds of members with this name exist in class 'Container'. c = New Container.aAxyx() ~~~~~~~~~~~~~~~ BC31429: 'aaxyy' is ambiguous because multiple kinds of members with this name exist in class 'Container'. c = New Container.aAxyy() ~~~~~~~~~~~~~~~ BC31429: 'aaxyz' is ambiguous because multiple kinds of members with this name exist in class 'Container'. c = New Container.Aaxyz() ~~~~~~~~~~~~~~~ </expected>) Dim compilation4 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim c As Object c = New Container.aaxxx() c = New Container.Aaxxy() c = New Container.aAxxz() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation4, expectedOutput:= <![CDATA[ aaxxx Aaxxy aAxxz ]]>) End Sub <Fact()> Public Sub MembersDifferByKindAndAccessibility_3() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .field family string aAxxx .field family string aAxxy .field public string aAxxz .field public string aAxyx .field public string aAxyy .field family string aAxyz .method family hidebysig specialname instance string get_Aaxxx() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aaxxx" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::get_Aaxxx .method public hidebysig instance string AAxxx() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.AAxxx" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::AAxxx .method public hidebysig specialname instance string get_Aaxxy() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aaxxy" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::get_Aaxxy .method family hidebysig instance string AAxxy() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.AAxxy" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::AAxxy .method family hidebysig specialname instance string get_Aaxxz() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aaxxz" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::get_Aaxxz .method family hidebysig instance string AAxxz() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.AAxxz" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::AAxxz .method public hidebysig specialname instance string get_Aaxyx() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aaxyx" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::get_Aaxyx .method family hidebysig instance string AAxyx() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.AAxyx" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::AAxyx .method family hidebysig specialname instance string get_Aaxyy() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aaxyy" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::get_Aaxyy .method public hidebysig instance string AAxyy() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.AAxyy" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::AAxyy .method public hidebysig specialname instance string get_Aaxyz() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.Aaxyz" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::get_Aaxyz .method public hidebysig instance string AAxyz() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.AAxyz" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::AAxyz .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 74 (0x4a) .maxstack 2 IL_0000: ldarg.0 IL_0001: ldstr "Container1.aAxxx" IL_0006: stfld string Container1::aAxxx IL_000b: ldarg.0 IL_000c: ldstr "Container1.aAxxy" IL_0011: stfld string Container1::aAxxy IL_0016: ldarg.0 IL_0017: ldstr "Container1.aAxxz" IL_001c: stfld string Container1::aAxxz IL_0021: ldarg.0 IL_0022: ldstr "Container1.aAxyx" IL_0027: stfld string Container1::aAxyx IL_002c: ldarg.0 IL_002d: ldstr "Container1.aAxyy" IL_0032: stfld string Container1::aAxyy IL_0037: ldarg.0 IL_0038: ldstr "Container1.aAxyz" IL_003d: stfld string Container1::aAxyz IL_0042: ldarg.0 IL_0043: call instance void [mscorlib]System.Object::.ctor() IL_0048: nop IL_0049: ret } // end of method Container1::.ctor .property instance string Aaxxx() { .get instance string Container1::get_Aaxxx() } // end of property Container1::Aaxxx .property instance string Aaxxy() { .get instance string Container1::get_Aaxxy() } // end of property Container1::Aaxxy .property instance string Aaxxz() { .get instance string Container1::get_Aaxxz() } // end of property Container1::Aaxxz .property instance string Aaxyx() { .get instance string Container1::get_Aaxyx() } // end of property Container1::Aaxyx .property instance string Aaxyy() { .get instance string Container1::get_Aaxyy() } // end of property Container1::Aaxyy .property instance string Aaxyz() { .get instance string Container1::get_Aaxyz() } // end of property Container1::Aaxyz } // end of class Container1 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container1 Sub Test() System.Console.WriteLine(AAxyx) System.Console.WriteLine(AAxyy) System.Console.WriteLine(AAxyz) End Sub End Class Sub Main Dim c As New Container1() System.Console.WriteLine(c.AAxyx) System.Console.WriteLine(c.AAxyy) System.Console.WriteLine(c.AAxyz) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC31429: 'Aaxyx' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(AAxyx) ~~~~~ BC31429: 'AAxyy' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(AAxyy) ~~~~~ BC31429: 'AAxyz' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(AAxyz) ~~~~~ BC31429: 'Aaxyx' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.AAxyx) ~~~~~~~ BC31429: 'AAxyy' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.AAxyy) ~~~~~~~ BC31429: 'AAxyz' is ambiguous because multiple kinds of members with this name exist in class 'Container1'. System.Console.WriteLine(c.AAxyz) ~~~~~~~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container1 Sub Test() System.Console.WriteLine(AAxxx) System.Console.WriteLine(Aaxxy) System.Console.WriteLine(aAxxz) End Sub End Class Sub Main Dim c As New Container1() System.Console.WriteLine(c.AAxxx) System.Console.WriteLine(c.Aaxxy) System.Console.WriteLine(c.aAxxz) Dim t1 As New Test() t1.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation2, expectedOutput:= <![CDATA[ Container1.AAxxx Container1.Aaxxy Container1.aAxxz Container1.AAxxx Container1.Aaxxy Container1.aAxxz ]]>) End Sub <Fact()> Public Sub OverloadingInBase_1() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .field family string goO .method family hidebysig instance void GoO(int32 x) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Container1::GoO .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container1::.ctor } // end of class Container1 .class public auto ansi beforefieldinit Container2 extends Container1 { .field family string goo .method public hidebysig instance void Goo() cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container2.Goo" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container2::Goo .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void Container1::.ctor() IL_0006: ret } // end of method Container2::.ctor } // end of class Container2 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container2 Sub Test() Goo(1) End Sub End Class Sub Main Dim c As New Container2() c.Goo(1) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC30057: Too many arguments to 'Public Overloads Sub Goo()'. Goo(1) ~ BC30057: Too many arguments to 'Public Overloads Sub Goo()'. c.Goo(1) ~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container2 Sub Test() Goo() End Sub End Class Sub Main Dim c As New Container2() c.Goo() Dim tt As New Test() tt.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation2, expectedOutput:= <![CDATA[ Container2.Goo Container2.Goo ]]>) End Sub <Fact()> Public Sub OverloadingInBase_2() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .field public string goO .method family hidebysig instance void GoO(int32 x) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Container1::GoO .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container1::.ctor } // end of class Container1 .class public auto ansi beforefieldinit Container2 extends Container1 { .field family string goo .method public hidebysig instance void Goo() cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Container2::Goo .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void Container1::.ctor() IL_0006: ret } // end of method Container2::.ctor } // end of class Container2 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container2 Sub Test() Goo(1) End Sub End Class Sub Main Dim c As New Container2() c.Goo(1) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC30057: Too many arguments to 'Public Overloads Sub Goo()'. Goo(1) ~ BC30057: Too many arguments to 'Public Overloads Sub Goo()'. c.Goo(1) ~ </expected>) End Sub <Fact()> Public Sub OverloadingInBase_3() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .field family string goO .method public hidebysig instance void GoO(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container1.GoO" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container1::GoO .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container1::.ctor } // end of class Container1 .class public auto ansi beforefieldinit Container2 extends Container1 { .field family string goo .method public hidebysig instance void Goo() cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Container2::Goo .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void Container1::.ctor() IL_0006: ret } // end of method Container2::.ctor } // end of class Container2 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container2 Sub Test() Goo(1) End Sub End Class Sub Main Dim c As New Container2() c.Goo(1) Dim t As New Test() t.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation1, expectedOutput:= <![CDATA[ Container1.GoO Container1.GoO ]]>) End Sub <Fact()> Public Sub OverloadingInBase_4() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .method public hidebysig instance void GoO(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container1.GoO" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container1::GoO .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container1::.ctor } // end of class Container1 .class public auto ansi beforefieldinit Container2 extends Container1 { .method public hidebysig instance void GOO(int64 x) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Container2::GOO .method public hidebysig instance void goo(int64 x) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Container2::goo .method public hidebysig instance void gOo(int64 x) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Container2::gOo .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void Container1::.ctor() IL_0006: ret } // end of method Container2::.ctor } // end of class Container2 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Sub Main Dim c As New Container2() c.Goo(Integer.MaxValue) Dim m As Long = Integer.MaxValue c.Goo(m) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) ' !!! c.Goo(Integer.MaxValue) - Dev10 reports an error BC31429: 'GOO' is ambiguous because multiple kinds of members with this name exist in class 'Container2'. ' !!! c.Goo(m) - Dev10 reports an error BC31429: 'GOO' is ambiguous because multiple kinds of members with this name exist in class 'Container2'. CompileAndVerify(compilation1, expectedOutput:= <![CDATA[ Container1.GoO Container1.GoO ]]>) End Sub <Fact()> Public Sub OverloadingInBase_5() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .method public hidebysig instance void GoO(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container1.GoO" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container1::GoO .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container1::.ctor } // end of class Container1 .class public auto ansi beforefieldinit Container2 extends Container1 { .method public hidebysig instance void GOO(int64 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Container2.GOO" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container2::GOO .method family hidebysig instance void goo(int64 x) cil managed { // Code size 2 (0x2) .maxstack 8 IL_0000: nop IL_0001: ret } // end of method Container2::goo .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void Container1::.ctor() IL_0006: ret } // end of method Container2::.ctor } // end of class Container2 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container2 Sub Test() Goo(Long.MaxValue) Goo(Integer.MaxValue) End Sub End Class Sub Main Dim c As New Container2() c.Goo(Long.MaxValue) c.Goo(Integer.MaxValue) Dim t As New Test() t.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation1, expectedOutput:= <![CDATA[ Container2.GOO Container1.GoO Container2.GOO Container1.GoO ]]>) End Sub <Fact()> Public Sub OverloadingInBase_6() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .field public string GoO .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 19 (0x13) .maxstack 8 IL_0000: ldarg.0 IL_0001: ldstr "Container1.GoO" IL_0006: stfld string Container1::GoO IL_000b: ldarg.0 IL_000c: call instance void [mscorlib]System.Object::.ctor() IL_0011: nop IL_0012: ret } // end of method Container1::.ctor } // end of class Container1 .class public auto ansi beforefieldinit Container2 extends Container1 { .method family hidebysig instance string GOO() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container2.GOO" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container2::GOO .method family hidebysig instance string goo() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container2.goo" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container2::goo .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void Container1::.ctor() IL_0006: ret } // end of method Container2::.ctor } // end of class Container2 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Sub Main Dim c As New Container2() System.Console.WriteLine(c.GoO) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation1, expectedOutput:= <![CDATA[ Container1.GoO ]]>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container2 Sub Test() System.Console.WriteLine(Goo) End Sub End Class Sub Main End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation2, <expected> BC31429: 'GOO' is ambiguous because multiple kinds of members with this name exist in class 'Container2'. System.Console.WriteLine(Goo) ~~~ </expected>) End Sub <Fact()> Public Sub OverloadingInBase_7() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .method public hidebysig instance string GoO(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.GoO" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::GoO .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container1::.ctor } // end of class Container1 .class public auto ansi beforefieldinit Container2 extends Container1 { .method family hidebysig instance string GOO() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container2.GOO" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container2::GOO .method family hidebysig instance string goo() cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container2.goo" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container2::goo .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void Container1::.ctor() IL_0006: ret } // end of method Container2::.ctor } // end of class Container2 .class public auto ansi beforefieldinit Container3 extends Container2 { .method public hidebysig instance string gOO(int64 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container3.gOO" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container3::gOO .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void Container2::.ctor() IL_0006: ret } // end of method Container3::.ctor } // end of class Container3 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container3 Sub Test() System.Console.WriteLine(gOO(Long.MaxValue)) System.Console.WriteLine(gOO(Integer.MaxValue)) End Sub End Class Sub Main() Dim c As New Container3() System.Console.WriteLine(c.gOO(Long.MaxValue)) System.Console.WriteLine(c.gOO(Integer.MaxValue)) Dim t As New Test() t.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation1, expectedOutput:= <![CDATA[ Container3.gOO Container1.GoO Container3.gOO Container1.GoO ]]>) End Sub <Fact()> Public Sub OverloadingInBase_8() Dim customIL = <![CDATA[ .class public auto ansi beforefieldinit Container1 extends [mscorlib]System.Object { .method public hidebysig instance string GoO(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container1.GoO" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container1::GoO .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container1::.ctor } // end of class Container1 .class public auto ansi beforefieldinit Container2 extends Container1 { .method family hidebysig instance string GOO(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container2.GOO" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container2::GOO .method family hidebysig instance string goo(int32 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container2.goo" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container2::goo .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void Container1::.ctor() IL_0006: ret } // end of method Container2::.ctor } // end of class Container2 .class public auto ansi beforefieldinit Container3 extends Container2 { .method public hidebysig instance string gOO(int64 x) cil managed { // Code size 11 (0xb) .maxstack 1 .locals init ([0] string CS$1$0000) IL_0000: nop IL_0001: ldstr "Container3.gOO" IL_0006: stloc.0 IL_0007: br.s IL_0009 IL_0009: ldloc.0 IL_000a: ret } // end of method Container3::gOO .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void Container2::.ctor() IL_0006: ret } // end of method Container3::.ctor } // end of class Container3 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Module Program Class Test Inherits Container3 Sub Test() System.Console.WriteLine(gOO(Long.MaxValue)) System.Console.WriteLine(gOO(Integer.MaxValue)) End Sub End Class Sub Main() Dim c As New Container3() System.Console.WriteLine(c.gOO(Long.MaxValue)) System.Console.WriteLine(c.gOO(Integer.MaxValue)) Dim t As New Test() t.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation1, expectedOutput:= <![CDATA[ Container3.gOO Container1.GoO Container3.gOO Container1.GoO ]]>) End Sub <Fact()> Public Sub ModuleMembersDifferByCase_1() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) } .module '<<GeneratedFileName>>.dll' .class public abstract auto ansi sealed beforefieldinit Extensions.c extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.3 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method c::Goo .method public hidebysig static void GoO(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.1 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method c::GoO } // end of class Extensions.c .class public abstract auto ansi sealed beforefieldinit Extensions.D extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.2 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method D::Goo } // end of class Extensions.D ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 Goo(x) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC30562: 'Goo' is ambiguous between declarations in Modules 'Extensions.c, Extensions.c, Extensions.D'. Goo(x) ~~~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 x.Goo() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) ' Dev10 reports error BC30521: Overload resolution failed because no accessible 'Goo' is most specific for these arguments: CompilationUtils.AssertTheseDiagnostics(compilation2, <expected> BC30521: Overload resolution failed because no accessible 'Goo' is most specific for these arguments: Extension method 'Public Sub Goo()' defined in 'c': Not most specific. Extension method 'Public Sub GoO()' defined in 'c': Not most specific. Extension method 'Public Sub Goo()' defined in 'D': Not most specific. x.Goo() ~~~ </expected>) End Sub <Fact()> Public Sub ModuleMembersDifferByCase_2() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) } .module '<<GeneratedFileName>>.dll' .class public abstract auto ansi sealed beforefieldinit Extensions.c extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.3 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method c::Goo .method public hidebysig static void GoO(int32 x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.1 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method c::GoO } // end of class Extensions.c ]]> Dim compilation = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 x.Goo() Goo(x) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False) CompilationUtils.AssertTheseDiagnostics(compilation, <expected> BC30521: Overload resolution failed because no accessible 'Goo' is most specific for these arguments: Extension method 'Public Sub Goo()' defined in 'c': Not most specific. Extension method 'Public Sub GoO()' defined in 'c': Not most specific. x.Goo() ~~~ BC31429: 'Goo' is ambiguous because multiple kinds of members with this name exist in module 'c'. Goo(x) ~~~ </expected>) End Sub <Fact()> Public Sub ModuleMembersDifferByCase_3() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) } .module '<<GeneratedFileName>>.dll' .class public abstract auto ansi sealed beforefieldinit Extensions.c extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(class [mscorlib]System.ValueType x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.3 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method c::Goo .method public hidebysig static void GoO(class [mscorlib]System.ValueType x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.1 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method c::GoO } // end of class Extensions.c .class public abstract auto ansi sealed beforefieldinit Extensions.D extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(object x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.2 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method D::Goo } // end of class Extensions.D ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 Goo(x) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC30562: 'Goo' is ambiguous between declarations in Modules 'Extensions.c, Extensions.c, Extensions.D'. Goo(x) ~~~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 x.Goo() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) ' Dev10 reports error BC30521: Overload resolution failed because no accessible 'Goo' is most specific for these arguments: CompilationUtils.AssertTheseDiagnostics(compilation2, <expected> BC30521: Overload resolution failed because no accessible 'Goo' is most specific for these arguments: Extension method 'Public Sub Goo()' defined in 'c': Not most specific. Extension method 'Public Sub GoO()' defined in 'c': Not most specific. x.Goo() ~~~ </expected>) End Sub <Fact()> Public Sub ModuleMembersDifferByCase_4() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) } .module '<<GeneratedFileName>>.dll' .class public abstract auto ansi sealed beforefieldinit Extensions.c extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(object x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.3 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method c::Goo .method public hidebysig static void GoO(object x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.1 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method c::GoO } // end of class Extensions.c .class public abstract auto ansi sealed beforefieldinit Extensions.D extends [mscorlib]System.Object { .custom instance void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StandardModuleAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void Goo(class [mscorlib]System.ValueType x) cil managed { .custom instance void [System.Core]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 9 (0x9) .maxstack 8 IL_0000: nop IL_0001: ldc.i4.2 IL_0002: call void [mscorlib]System.Console::WriteLine(int32) IL_0007: nop IL_0008: ret } // end of method D::Goo } // end of class Extensions.D ]]> Dim compilation = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 x.Goo() Goo(x) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False) CompilationUtils.AssertTheseDiagnostics(compilation, <expected> BC30562: 'Goo' is ambiguous between declarations in Modules 'Extensions.c, Extensions.c, Extensions.D'. Goo(x) ~~~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="NamedArgumentsAndOverriding"> <file name="a.vb"> Imports Extensions Module Program Sub Main Dim x As Integer = 1 x.Goo() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation2, expectedOutput:= <![CDATA[ 2 ]]>) End Sub <Fact()> Public Sub SameKindOverloadingInSameContainer_1() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [mscorlib]System.Runtime.CompilerServices.InternalsVisibleToAttribute::.ctor(string) = ( 01 00 13 43 6F 6E 73 6F 6C 65 41 70 70 6C 69 63 // ...ConsoleApplic 61 74 69 6F 6E 31 00 00 ) // ation1.. } .module '<<GeneratedFileName>>.dll' .class public auto ansi beforefieldinit Container31 extends [mscorlib]System.Object { .method public hidebysig instance void aAxxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAxxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAxxx .method public hidebysig instance void Aaxxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aaxxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aaxxx .method assembly hidebysig instance void aAxxy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAxxy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAxxy .method public hidebysig instance void Aaxxy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aaxxy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aaxxy .method public hidebysig instance void aAxxz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAxxz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAxxz .method assembly hidebysig instance void Aaxxz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aaxxz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aaxxz .method assembly hidebysig instance void aAxyx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAxyx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAxyx .method public hidebysig instance void Aaxyx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aaxyx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aaxyx .method public hidebysig instance void AAxyx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAxyx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAxyx .method public hidebysig instance void aAxyy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAxyy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAxyy .method assembly hidebysig instance void Aaxyy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aaxyy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aaxyy .method public hidebysig instance void AAxyy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAxyy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAxyy .method public hidebysig instance void aAxyz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAxyz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAxyz .method public hidebysig instance void Aaxyz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aaxyz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aaxyz .method assembly hidebysig instance void AAxyz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAxyz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAxyz .method public hidebysig instance void aAxzx(int32 x, int32 y) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAxzx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAxzx .method public hidebysig instance void Aaxzx(int32 x, int32 y) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aaxzx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aaxzx .method public hidebysig instance void AAxzx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAxzx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAxzx .method public hidebysig instance void aaxzx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAxzx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aaxzx .method public hidebysig instance void aAxzy(int32 x, int32 y) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAxzy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAxzy .method public hidebysig instance void AAxzy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAxzy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAxzy .method public hidebysig instance void Aaxzy(int32 x, int32 y) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aaxzy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aaxzy .method public hidebysig instance void aaxzy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAxzy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aaxzy .method public hidebysig instance void aAxzz(int32 x, int32 y) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAxzz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAxzz .method public hidebysig instance void AAxzz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAxzz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAxzz .method public hidebysig instance void aaxzz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAxzz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aaxzz .method public hidebysig instance void Aaxzz(int32 x, int32 y) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aaxzz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aaxzz .method public hidebysig instance void aAyxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAyxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAyxx .method assembly hidebysig instance void Aayxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aayxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aayxx .method assembly hidebysig instance void AAyxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAyxx .method assembly hidebysig instance void aayxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aayxx .method assembly hidebysig instance void aAyxy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAyxy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAyxy .method public hidebysig instance void Aayxy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aayxy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aayxy .method assembly hidebysig instance void AAyxy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyxy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAyxy .method assembly hidebysig instance void aayxy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyxy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aayxy .method assembly hidebysig instance void aAyxz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAyxz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAyxz .method assembly hidebysig instance void Aayxz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aayxz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aayxz .method public hidebysig instance void AAyxz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyxz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAyxz .method assembly hidebysig instance void aayxz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyxz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aayxz .method assembly hidebysig instance void aAyyx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAyyx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAyyx .method assembly hidebysig instance void Aayyx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aayyx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aayyx .method assembly hidebysig instance void AAyyx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyyx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAyyx .method public hidebysig instance void aayyx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyyx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aayyx .method assembly hidebysig instance void aAyyy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAyyy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAyyy .method assembly hidebysig instance void Aayyy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aayyy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aayyy .method public hidebysig instance void AAyyy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyyy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAyyy .method public hidebysig instance void aayyy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyyy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aayyy .method assembly hidebysig instance void aAyyz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAyyz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAyyz .method public hidebysig instance void Aayyz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aayyz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aayyz .method assembly hidebysig instance void AAyyz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyyz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAyyz .method public hidebysig instance void aayyz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyyz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aayyz .method assembly hidebysig instance void aAyzx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAyzx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAyzx .method public hidebysig instance void Aayzx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aayzx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aayzx .method public hidebysig instance void AAyzx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyzx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAyzx .method assembly hidebysig instance void aayzx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyzx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aayzx .method public hidebysig instance void aAyzy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAyzy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAyzy .method assembly hidebysig instance void Aayzy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aayzy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aayzy .method assembly hidebysig instance void AAyzy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyzy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAyzy .method public hidebysig instance void aayzy(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyzy" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aayzy .method public hidebysig instance void aAyzz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAyzz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAyzz .method assembly hidebysig instance void Aayzz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aayzz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aayzz .method public hidebysig instance void AAyzz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyzz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAyzz .method assembly hidebysig instance void aayzz(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAyzz" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aayzz .method public hidebysig instance void aAzxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAzxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aAzxx .method public hidebysig instance void Aazxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aazxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::Aazxx .method assembly hidebysig instance void AAzxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAzxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::AAzxx .method assembly hidebysig instance void aazxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "AAzxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container31::aazxx .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container31::.ctor } // end of class Container31 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim cc As New Container31 cc.aAxxx(1) cc.aAxyx(1) cc.aAxyy(1) cc.aAxyz(1) cc.aAxzx(1, 2) cc.Aaxzx(1) cc.aAxzy(1, 2) cc.AAxzy(1) cc.aAxzz(1, 2) cc.AAxzz(1) cc.aAyyy(1) cc.aAyyz(1) cc.aAyzx(1) cc.aAyzy(1) cc.aAyzz(1) cc.aAzxx(1) cc.aAxzx() cc.aAxzy() cc.aAxzz() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC31429: 'aAxxx' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAxxx(1) ~~~~~ BC31429: 'Aaxyx' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAxyx(1) ~~~~~ BC31429: 'aAxyy' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAxyy(1) ~~~~~ BC31429: 'aAxyz' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAxyz(1) ~~~~~ BC31429: 'aAxzx' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAxzx(1, 2) ~~~~~ BC31429: 'AAxzx' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.Aaxzx(1) ~~~~~ BC31429: 'aAxzy' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAxzy(1, 2) ~~~~~ BC31429: 'AAxzy' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.AAxzy(1) ~~~~~ BC31429: 'aAxzz' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAxzz(1, 2) ~~~~~ BC31429: 'AAxzz' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.AAxzz(1) ~~~~~ BC31429: 'AAyyy' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAyyy(1) ~~~~~ BC31429: 'Aayyz' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAyyz(1) ~~~~~ BC31429: 'Aayzx' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAyzx(1) ~~~~~ BC31429: 'aAyzy' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAyzy(1) ~~~~~ BC31429: 'aAyzz' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAyzz(1) ~~~~~ BC31429: 'aAzxx' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAzxx(1) ~~~~~ BC31429: 'aAxzx' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAxzx() ~~~~~ BC31429: 'aAxzy' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAxzy() ~~~~~ BC31429: 'aAxzz' is ambiguous because multiple kinds of members with this name exist in class 'Container31'. cc.aAxzz() ~~~~~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Sub Main Dim cc As New Container31 cc.Aaxxy(1) cc.aAxxz(1) cc.aAyxx(1) cc.Aayxy(1) cc.AAyxz(1) cc.aayyx(1) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation2, expectedOutput:= <![CDATA[ Aaxxy aAxxz aAyxx Aayxy AAyxz AAyyx ]]>) End Sub <Fact()> Public Sub SameKindOverloadingInSameContainer_2() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { .custom instance void [mscorlib]System.Runtime.CompilerServices.InternalsVisibleToAttribute::.ctor(string) = ( 01 00 13 43 6F 6E 73 6F 6C 65 41 70 70 6C 69 63 // ...ConsoleApplic 61 74 69 6F 6E 31 00 00 ) // ation1.. } .module '<<GeneratedFileName>>.dll' .class public auto ansi beforefieldinit Container32 extends [mscorlib]System.Object { .method family hidebysig instance void aAxxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAxxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container32::aAxxx .method assembly hidebysig instance void Aaxxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aaxxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container32::Aaxxx .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container32::.ctor } // end of class Container32 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim cc As New Container32 cc.aAxxx(1) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC30390: 'Container32.Protected Overloads Sub aAxxx(x As Integer)' is not accessible in this context because it is 'Protected'. cc.aAxxx(1) ~~~~~~~~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Class Test Inherits Container32 Sub Test() aAxxx(1) End Sub End Class Sub Main Dim tt As New Test() tt.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation2, expectedOutput:= <![CDATA[ aAxxx ]]>) End Sub <Fact()> Public Sub SameKindOverloadingInSameContainer_3() Dim customIL = <![CDATA[ .assembly extern mscorlib { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89) } .assembly extern System.Core { .ver 4:0:0:0 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) } .assembly extern Microsoft.VisualBasic { .ver 10:0:0:0 .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) } .assembly '<<GeneratedFileName>>' { } .module '<<GeneratedFileName>>.dll' .class public auto ansi beforefieldinit Container32 extends [mscorlib]System.Object { .method family hidebysig instance void aAxxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "aAxxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container32::aAxxx .method assembly hidebysig instance void Aaxxx(int32 x) cil managed { // Code size 13 (0xd) .maxstack 8 IL_0000: nop IL_0001: ldstr "Aaxxx" IL_0006: call void [mscorlib]System.Console::WriteLine(string) IL_000b: nop IL_000c: ret } // end of method Container32::Aaxxx .method public hidebysig specialname rtspecialname instance void .ctor() cil managed { // Code size 7 (0x7) .maxstack 8 IL_0000: ldarg.0 IL_0001: call instance void [mscorlib]System.Object::.ctor() IL_0006: ret } // end of method Container32::.ctor } // end of class Container32 ]]> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication"> <file name="a.vb"> Module Program Sub Main Dim cc As New Container32 cc.aAxxx(1) End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompilationUtils.AssertTheseDiagnostics(compilation1, <expected> BC30390: 'Container32.Protected Overloads Sub aAxxx(x As Integer)' is not accessible in this context because it is 'Protected'. cc.aAxxx(1) ~~~~~~~~ </expected>) Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource( <compilation name="ConsoleApplication1"> <file name="a.vb"> Module Program Class Test Inherits Container32 Sub Test() aAxxx(1) End Sub End Class Sub Main Dim tt As New Test() tt.Test() End Sub End Module </file> </compilation>, customIL.Value, includeVbRuntime:=True, includeSystemCore:=True, appendDefaultHeader:=False, options:=TestOptions.ReleaseExe) CompileAndVerify(compilation2, expectedOutput:= <![CDATA[ aAxxx ]]>) End Sub <Fact, WorkItem(4704, "https://github.com/dotnet/roslyn/issues/4704")> Public Sub UnsupportedOverloadingOfExtensionMethods() Dim ilSource = <![CDATA[ .assembly extern mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 4:0:0:0 } .assembly '<<GeneratedFileName>>' { .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) } // MVID: {866DFDCB-9BF6-47CA-A90A-4C1FCEA128C0} .imagebase 0x10000000 .file alignment 0x00000200 .stackreserve 0x00100000 .subsystem 0x0003 // WINDOWS_CUI .corflags 0x00000001 // ILONLY // Image base: 0x00BA0000 // =============== CLASS MEMBERS DECLARATION =================== .class public abstract auto ansi sealed beforefieldinit Matrix extends [mscorlib]System.Object { .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .method public hidebysig static void ToArray(int32 a, string[] b) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) .param [2] .custom instance void [mscorlib]System.ParamArrayAttribute::.ctor() = ( 01 00 00 00 ) // Code size 11 (0xb) .maxstack 1 IL_0000: ldstr "1" IL_0005: call void [mscorlib]System.Console::WriteLine(string) IL_000a: ret } // end of method Matrix::ToArray .method public hidebysig static void ToArray(int32 a, [out] string[]& b) cil managed { .custom instance void [mscorlib]System.Runtime.CompilerServices.ExtensionAttribute::.ctor() = ( 01 00 00 00 ) // Code size 11 (0xb) .maxstack 1 IL_0000: ldstr "2" IL_0005: call void [mscorlib]System.Console::WriteLine(string) IL_000a: ret } // end of method Matrix::ToArray } // end of class Matrix // ============================================================= ]]> Dim compDef1 = <compilation> <file name="c.vb"><![CDATA[ Class Module1 Shared Sub Main() Dim a As Integer = 5 Matrix.ToArray(a, "Field1", "Field2", "Field3") Matrix.ToArray(a, {"Field1", "Field2", "Field3"}) a.ToArray({"Field1", "Field2", "Field3"}) Dim b As System.Action(Of Integer, String, String, String) = AddressOf Matrix.ToArray Dim c As System.Action(Of Integer, String()) = AddressOf Matrix.ToArray End Sub End Class ]]> </file> </compilation> Dim compilation1 = CompilationUtils.CreateCompilationWithCustomILSource(compDef1, ilSource.Value, TestOptions.ReleaseExe, appendDefaultHeader:=False) AssertTheseDiagnostics(compilation1, <expected> BC31429: 'ToArray' is ambiguous because multiple kinds of members with this name exist in class 'Matrix'. Matrix.ToArray(a, "Field1", "Field2", "Field3") ~~~~~~~ BC31429: 'ToArray' is ambiguous because multiple kinds of members with this name exist in class 'Matrix'. Matrix.ToArray(a, {"Field1", "Field2", "Field3"}) ~~~~~~~ BC30521: Overload resolution failed because no accessible 'ToArray' is most specific for these arguments: Extension method 'Public Sub ToArray(ParamArray b As String())' defined in 'Matrix': Not most specific. Extension method 'Public Sub ToArray(ByRef b As String())' defined in 'Matrix': Not most specific. a.ToArray({"Field1", "Field2", "Field3"}) ~~~~~~~ BC31429: 'ToArray' is ambiguous because multiple kinds of members with this name exist in class 'Matrix'. Dim b As System.Action(Of Integer, String, String, String) = AddressOf Matrix.ToArray ~~~~~~~~~~~~~~ BC31429: 'ToArray' is ambiguous because multiple kinds of members with this name exist in class 'Matrix'. Dim c As System.Action(Of Integer, String()) = AddressOf Matrix.ToArray ~~~~~~~~~~~~~~ </expected>) Dim compDef2 = <compilation> <file name="c.vb"><![CDATA[ Class Module1 Shared Sub Main() Dim a As Integer = 5 a.ToArray("Field1", "Field2", "Field3") Dim b As System.Action(Of String, String, String) = AddressOf a.ToArray b("Field1", "Field2", "Field3") End Sub End Class ]]> </file> </compilation> Dim compilation2 = CompilationUtils.CreateCompilationWithCustomILSource(compDef2, ilSource.Value, TestOptions.ReleaseExe, appendDefaultHeader:=False) CompileAndVerify(compilation2, expectedOutput:="1 1") End Sub End Class End Namespace