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)