From 8be2eeef65b7c714fd7a958c9e9b753a62715a7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Kr=C3=BCger?= Date: Wed, 6 Mar 2013 14:48:59 +0100 Subject: [PATCH] Fixed some false positives in parameter not used issue. --- .../ParameterNotUsedIssue.cs | 4 ++ .../CodeIssues/ParameterNotUsedIssueTests.cs | 38 +++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/VariableNotUsedIssues/ParameterNotUsedIssue.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/VariableNotUsedIssues/ParameterNotUsedIssue.cs index ba52d904e7..026b0ec4db 100644 --- a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/VariableNotUsedIssues/ParameterNotUsedIssue.cs +++ b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/VariableNotUsedIssues/ParameterNotUsedIssue.cs @@ -112,6 +112,10 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring if (methodDeclaration.Body.IsNull) return; + if (methodDeclaration.Modifiers.HasFlag (Modifiers.Virtual) || + methodDeclaration.Modifiers.HasFlag (Modifiers.New) || + methodDeclaration.Modifiers.HasFlag (Modifiers.Partial)) + return; var methodResolveResult = ctx.Resolve(methodDeclaration) as MemberResolveResult; if (methodResolveResult == null) return; diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/ParameterNotUsedIssueTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/ParameterNotUsedIssueTests.cs index 6865dd770a..f7c1316d9b 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/ParameterNotUsedIssueTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/ParameterNotUsedIssueTests.cs @@ -178,5 +178,43 @@ class TestClass { }"; Test (input, 1); } + + [Test] + public void TestUnusedParameterInVirtualMethod () + { + var input = @" +class TestClass { + public virtual void TestMethod (int i) + { + } +}"; + Test (input, 0); + } + + [Test] + public void TestUnusedParameterInShadowedMethod () + { + var input = @" +class TestClass { + public new void TestMethod (int i) + { + } +}"; + Test (input, 0); + } + + + [Test] + public void TestUnusedParameterInPartialMethod () + { + var input = @" +partial class TestClass { + partial void TestMethod (int i) + { + } +}"; + Test (input, 0); + } + } }