|
' 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
|