diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CompletionDataWrapper.cs b/ICSharpCode.NRefactory.CSharp/Completion/CompletionDataWrapper.cs index f9f616231e..f6dabc70f5 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CompletionDataWrapper.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CompletionDataWrapper.cs @@ -158,6 +158,9 @@ namespace ICSharpCode.NRefactory.CSharp.Completion public ICompletionData AddMember (IMember member) { + if (data.ContainsKey (member.Name)) + return null; + var newData = Factory.CreateEntityCompletionData (member); if (member.ParentAssembly != completion.ctx.CurrentAssembly && !member.IsBrowsable ()) diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionAccessibleTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionAccessibleTests.cs index 29a08938b6..c7cf8ef4ff 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionAccessibleTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionAccessibleTests.cs @@ -1517,5 +1517,25 @@ class Test Assert.IsNull (provider.Find ("TestMethod"), "'TestMethod' found."); }); } + + [Test] + public void TestVariableHiding () + { + CodeCompletionBugTests.CombinedProviderTest (@" +using System; + +class Test +{ + static string test; + + public static void Main (int test) + { + $f$ + } +} +", provider => { + Assert.AreEqual (1, provider.Data.Count (p => p.DisplayText == "test")); + }); + } } } \ No newline at end of file