Skip to content

Commit 67a009f

Browse files
authored
Implement name an signature conflict check across extension containers with the same receiver type (#77747)
Implements the following rule from the spec: "Within a given enclosing static class, the set of extension member declarations with the same receiver type (modulo identity conversion and type parameter name substitution) are treated as a single declaration space similar to the members within a class or struct declaration, and are subject to the same rules about uniqueness."
1 parent c5fc31a commit 67a009f

File tree

4 files changed

+1012
-180
lines changed

4 files changed

+1012
-180
lines changed

src/Compilers/CSharp/Portable/Symbols/ConversionSignatureComparer.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
namespace Microsoft.CodeAnalysis.CSharp.Symbols
1111
{
12-
internal sealed class ConversionSignatureComparer : IEqualityComparer<SourceUserDefinedConversionSymbol>
12+
internal sealed class ConversionSignatureComparer : IEqualityComparer<MethodSymbol>
1313
{
1414
private static readonly ConversionSignatureComparer s_comparer = new ConversionSignatureComparer();
1515
public static ConversionSignatureComparer Comparer
@@ -24,7 +24,7 @@ private ConversionSignatureComparer()
2424
{
2525
}
2626

27-
public bool Equals(SourceUserDefinedConversionSymbol member1, SourceUserDefinedConversionSymbol member2)
27+
public bool Equals(MethodSymbol member1, MethodSymbol member2)
2828
{
2929
if (ReferenceEquals(member1, member2))
3030
{
@@ -53,7 +53,7 @@ public bool Equals(SourceUserDefinedConversionSymbol member1, SourceUserDefinedC
5353
&& (member1.Name == WellKnownMemberNames.ImplicitConversionName || member2.Name == WellKnownMemberNames.ImplicitConversionName || member1.Name == member2.Name);
5454
}
5555

56-
public int GetHashCode(SourceUserDefinedConversionSymbol member)
56+
public int GetHashCode(MethodSymbol member)
5757
{
5858
if ((object)member == null)
5959
{

0 commit comments

Comments
 (0)