diff --git a/src/EditorFeatures/CSharpTest/Completion/CompletionProviders/SymbolCompletionProviderTests.cs b/src/EditorFeatures/CSharpTest/Completion/CompletionProviders/SymbolCompletionProviderTests.cs index 3babdeb2e8eff1dfcec56e9eae460a369d786773..c7744cbfb7caf7ee89a6edc942c6a236fb718e49 100644 --- a/src/EditorFeatures/CSharpTest/Completion/CompletionProviders/SymbolCompletionProviderTests.cs +++ b/src/EditorFeatures/CSharpTest/Completion/CompletionProviders/SymbolCompletionProviderTests.cs @@ -6914,40 +6914,6 @@ void Shared() VerifyItemInLinkedFiles(markup, "Do", expectedDescription); } - [WorkItem(1063403)] - [Fact, Trait(Traits.Feature, Traits.Features.Completion)] - public void WarningForSymbolsOfDifferingKind() - { - var markup = @" - - - - - - - -"; - - var expectedDescription = $"void C.Do(int x) (+ 1 {FeaturesResources.Overload})\r\n\r\n{string.Format(FeaturesResources.ProjectAvailability, "Proj1", FeaturesResources.Available)}\r\n{string.Format(FeaturesResources.ProjectAvailability, "Proj2", FeaturesResources.NotAvailable)}\r\n\r\n{FeaturesResources.UseTheNavigationBarToSwitchContext}"; - VerifyItemInLinkedFiles(markup, "Do", expectedDescription); - } - [Fact, Trait(Traits.Feature, Traits.Features.Completion)] public void MethodOverloadDifferencesIgnored_ExtensionMethod() { @@ -7080,6 +7046,68 @@ public class Methods2 VerifyItemInLinkedFiles(markup, "Do", expectedDescription); } + [Fact, Trait(Traits.Feature, Traits.Features.Completion)] + public void SharedProjectFieldAndPropertiesTreatedAsIdentical() + { + var markup = @" + + + + + + + +"; + + var expectedDescription = $"(field) int C.x"; + VerifyItemInLinkedFiles(markup, "x", expectedDescription); + } + + [Fact, Trait(Traits.Feature, Traits.Features.Completion)] + public void SharedProjectFieldAndPropertiesTreatedAsIdentical2() + { + var markup = @" + + + + + + + +"; + + var expectedDescription = "int C.x { get; set; }"; + VerifyItemInLinkedFiles(markup, "x", expectedDescription); + } + [Fact, Trait(Traits.Feature, Traits.Features.Completion)] public void ConditionalAccessWalkUp() { diff --git a/src/EditorFeatures/VisualBasicTest/Completion/CompletionProviders/SymbolCompletionProviderTests.vb b/src/EditorFeatures/VisualBasicTest/Completion/CompletionProviders/SymbolCompletionProviderTests.vb index 2ac250d7b72cd74f62d04196fc502c6eacdbaf0e..f8f3d88bdf4b18aebe9d7641794e8ca33756e8c2 100644 --- a/src/EditorFeatures/VisualBasicTest/Completion/CompletionProviders/SymbolCompletionProviderTests.vb +++ b/src/EditorFeatures/VisualBasicTest/Completion/CompletionProviders/SymbolCompletionProviderTests.vb @@ -6536,5 +6536,58 @@ End Class VerifyItemExists(text, "y") End Sub + + Sub SharedProjectFieldAndPropertiesTreatedAsIdentical() + Dim markup = + + + + + + + + .ToString().NormalizeLineEndings() + + Dim expectedDescription = $"(field) C.x As Integer" + VerifyItemInLinkedFiles(markup, "x", expectedDescription) + End Sub + + + Public Sub SharedProjectFieldAndPropertiesTreatedAsIdentical2() + Dim markup = + + + + + + + + .ToString().NormalizeLineEndings() + + Dim expectedDescription = $"Property C.x As Integer" + VerifyItemInLinkedFiles(markup, "x", expectedDescription) + End Sub End Class End Namespace \ No newline at end of file diff --git a/src/Features/Core/Shared/Utilities/LinkedFilesSymbolEquivalenceComparer.cs b/src/Features/Core/Shared/Utilities/LinkedFilesSymbolEquivalenceComparer.cs index 71f2c437d42f0e91adea89c39157c4962398df62..900f7c24277556f149b7dae7dd1ec7c919e96d01 100644 --- a/src/Features/Core/Shared/Utilities/LinkedFilesSymbolEquivalenceComparer.cs +++ b/src/Features/Core/Shared/Utilities/LinkedFilesSymbolEquivalenceComparer.cs @@ -1,5 +1,6 @@ // Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +using System; using System.Collections.Generic; using Microsoft.CodeAnalysis.Shared.Extensions; @@ -16,7 +17,7 @@ internal sealed class LinkedFilesSymbolEquivalenceComparer : IEqualityComparer.Equals(ISymbol x, ISymbol y) { - return x.Kind == y.Kind && x.Name == y.Name; + return x.Name == y.Name; } int IEqualityComparer.GetHashCode(ISymbol symbol)