Browse Source

Fixed some false positives in parameter not used issue.

pull/32/merge
Mike Krüger 13 years ago
parent
commit
8be2eeef65
  1. 4
      ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/VariableNotUsedIssues/ParameterNotUsedIssue.cs
  2. 38
      ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/ParameterNotUsedIssueTests.cs

4
ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/VariableNotUsedIssues/ParameterNotUsedIssue.cs

@ -112,6 +112,10 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
if (methodDeclaration.Body.IsNull) if (methodDeclaration.Body.IsNull)
return; 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; var methodResolveResult = ctx.Resolve(methodDeclaration) as MemberResolveResult;
if (methodResolveResult == null) if (methodResolveResult == null)
return; return;

38
ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/ParameterNotUsedIssueTests.cs

@ -178,5 +178,43 @@ class TestClass {
}"; }";
Test<ParameterNotUsedIssue> (input, 1); Test<ParameterNotUsedIssue> (input, 1);
} }
[Test]
public void TestUnusedParameterInVirtualMethod ()
{
var input = @"
class TestClass {
public virtual void TestMethod (int i)
{
}
}";
Test<ParameterNotUsedIssue> (input, 0);
}
[Test]
public void TestUnusedParameterInShadowedMethod ()
{
var input = @"
class TestClass {
public new void TestMethod (int i)
{
}
}";
Test<ParameterNotUsedIssue> (input, 0);
}
[Test]
public void TestUnusedParameterInPartialMethod ()
{
var input = @"
partial class TestClass {
partial void TestMethod (int i)
{
}
}";
Test<ParameterNotUsedIssue> (input, 0);
}
} }
} }

Loading…
Cancel
Save