diff --git a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs index 74fab83f42..839eec183b 100644 --- a/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs +++ b/ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs @@ -1774,6 +1774,10 @@ namespace ICSharpCode.NRefactory.CSharp.Completion // Console.WriteLine ("skip non static member: " + member.FullName); continue; } + + if (member is IMethod && ((IMethod)member).FullName == "System.Object.Finalize") + continue; + // Console.WriteLine ("add : "+ member.FullName + " --- " + member.IsStatic); result.AddMember (member); } diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs index 1f553af21f..6022484163 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeCompletion/CodeCompletionBugTests.cs @@ -1655,6 +1655,44 @@ class A }); } + /// + /// Bug 2800 - Finalize is offered as a valid completion target + /// + [Test()] + public void TestBug2800 () + { + CombinedProviderTest ( +@" +class A +{ + public void Test() + { + $this.$ + } +} +", provider => { + Assert.IsNull (provider.Find ("Finalize"), "'Finalize' found."); + }); + } + + + [Test()] + public void TestBug2800B () + { + CombinedProviderTest ( +@" +class A +{ + $public override $ +} +", provider => { + Assert.IsNotNull (provider.Find ("ToString"), "'ToString' not found."); + Assert.IsNull (provider.Find ("Finalize"), "'Finalize' found."); + }); + } + + + [Test()] public void TestNewInConstructor () {