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

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

@ -81,6 +81,30 @@ namespace ICSharpCode.NRefactory.CSharp.CodeIssues @@ -81,6 +81,30 @@ namespace ICSharpCode.NRefactory.CSharp.CodeIssues
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;
var issues = GetIssues(new SetterDoesNotUseValueParameterIssue(), input, out context);

Loading…
Cancel
Save