From 23fb23ca46cf4a903904cc11a04bd46ea81c273b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Wed, 2 Jan 2013 11:05:34 +0100 Subject: [PATCH] [CodeCompletion] Fixed variable hiding bug. --- .../Completion/CompletionDataWrapper.cs | 3 +++ .../CodeCompletionAccessibleTests.cs | 20 +++++++++++++++++++ 2 files changed, 23 insertions(+) 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