From a33b32095851c7b53c05cf40857fa9d6a0296101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Mon, 16 Jan 2012 13:42:15 +0100 Subject: [PATCH] Fixed failing unit test. --- .../Completion/CSharpCompletionEngine.cs | 8 +++++ .../CodeCompletion/CodeCompletionBugTests.cs | 30 +++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs index 839eec183b..3100466cd3 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs @@ -870,6 +870,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion if (this.currentMember != null) { var def = ctx.CurrentTypeDefinition ?? Compilation.MainAssembly.GetTypeDefinition (currentType); foreach (var member in def.GetMembers ()) { + if (member is IMethod && ((IMethod)member).FullName == "System.Object.Finalize") + continue; if (memberPred == null || memberPred (member)) wrapper.AddMember (member); } @@ -1854,6 +1856,12 @@ namespace ICSharpCode.NRefactory.CSharp.Completion baseUnit = ParseStub ("a;", false); type = baseUnit.GetNodeAt (location); } + + if (type == null) { + baseUnit = ParseStub ("A a;", false); + type = baseUnit.GetNodeAt (location); + } + if (type != null) { // insert target type into compilation unit, to respect the var target = type.Target; diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs index 6022484163..bebd775c2c 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs @@ -1691,6 +1691,36 @@ class A }); } + /// + /// Bug 2799 - No completion offered when declaring fields in a class + /// + [Test()] + public void TestBug2799 () + { + CombinedProviderTest ( +@"namespace Foobar +{ + class MainClass + { + public enum Foo + { + Value1, + Value2 + } + } + + + public class Second + { + $MainClass.$ + } +} + +", provider => { + Assert.IsNotNull (provider.Find ("Foo"), "'Foo' not found."); + }); + } + [Test()]