Browse Source

[CodeActions] Handle auto-setters and missing setters in SetterDoesNotUseValueParameterIssue.

newNRvisualizers
Simon Lindgren 14 years ago
parent
commit
c8f36ae31b
  1. 6
      ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/SetterDoesNotUseValueParameterIssue.cs
  2. 24
      ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/SetterDoesNotUseValueParameterTests.cs

6
ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/SetterDoesNotUseValueParameterIssue.cs

@ -52,8 +52,6 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
this.context = context; this.context = context;
} }
public override void VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration) public override void VisitIndexerDeclaration(IndexerDeclaration indexerDeclaration)
{ {
FindIssuesInNode(indexerDeclaration.Setter.Body); FindIssuesInNode(indexerDeclaration.Setter.Body);
@ -61,7 +59,9 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
public override void VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration) public override void VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration)
{ {
FindIssuesInNode(propertyDeclaration.Setter.Body); var body = propertyDeclaration.Setter.Body;
if (!body.IsNull)
FindIssuesInNode(body);
} }
CompilationUnit compilationUnit; CompilationUnit compilationUnit;

24
ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/SetterDoesNotUseValueParameterTests.cs

@ -81,6 +81,30 @@ namespace ICSharpCode.NRefactory.CSharp.CodeIssues
A a = value; A a = value;
} }
} }
}";
TestRefactoringContext context;
var issues = GetIssues(new SetterDoesNotUseValueParameterIssue(), input, out context);
Assert.AreEqual(0, issues.Count);
}
[Test]
public void IgnoresAutoSetter()
{
var input = @"class A
{
string Property { set; }
}";
TestRefactoringContext context;
var issues = GetIssues(new SetterDoesNotUseValueParameterIssue(), input, out context);
Assert.AreEqual(0, issues.Count);
}
[Test]
public void IgnoreReadOnlyProperty()
{
var input = @"class A
{
string Property { get; }
}"; }";
TestRefactoringContext context; TestRefactoringContext context;
var issues = GetIssues(new SetterDoesNotUseValueParameterIssue(), input, out context); var issues = GetIssues(new SetterDoesNotUseValueParameterIssue(), input, out context);

Loading…
Cancel
Save