Browse Source

Merge pull request #103 from konrad-kruczynski/master

Don't report parameter not used issue if it is out or ref
newNRvisualizers
Mike Krüger 13 years ago
parent
commit
0ea9ee107c
  1. 3
      ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/VariableOnlyAssignedIssues/ParameterOnlyAssignedIssue.cs
  2. 28
      ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/ParameterOnlyAssignedIssueTests.cs

3
ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/VariableOnlyAssignedIssues/ParameterOnlyAssignedIssue.cs

@ -57,7 +57,8 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring @@ -57,7 +57,8 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
var resolveResult = ctx.Resolve (parameterDeclaration) as LocalResolveResult;
if (resolveResult == null)
return;
if (!TestOnlyAssigned (ctx, unit, resolveResult.Variable))
if (parameterDeclaration.ParameterModifier == ParameterModifier.Out || parameterDeclaration.ParameterModifier == ParameterModifier.Ref
|| !TestOnlyAssigned (ctx, unit, resolveResult.Variable))
return;
AddIssue (parameterDeclaration.NameToken,
ctx.TranslateString ("Parameter is assigned by its value is never used"));

28
ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/ParameterOnlyAssignedIssueTests.cs

@ -57,6 +57,34 @@ class TestClass @@ -57,6 +57,34 @@ class TestClass
i = 1;
return i;
}
}";
Test<ParameterOnlyAssignedIssue> (input, 0);
}
[Test]
public void TestOutParametr ()
{
var input = @"
class TestClass
{
void TestMethod(out int i)
{
i = 1;
}
}";
Test<ParameterOnlyAssignedIssue> (input, 0);
}
[Test]
public void TestRefParametr ()
{
var input = @"
class TestClass
{
void TestMethod(ref int i)
{
i = 1;
}
}";
Test<ParameterOnlyAssignedIssue> (input, 0);
}

Loading…
Cancel
Save