diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/SetterDoesNotUseValueParameterIssue.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/SetterDoesNotUseValueParameterIssue.cs index 6a0ba4c67c..22bd546403 100644 --- a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/SetterDoesNotUseValueParameterIssue.cs +++ b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/SetterDoesNotUseValueParameterIssue.cs @@ -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 public override void VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration) { - FindIssuesInNode(propertyDeclaration.Setter.Body); + var body = propertyDeclaration.Setter.Body; + if (!body.IsNull) + FindIssuesInNode(body); } CompilationUnit compilationUnit; diff --git a/ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/SetterDoesNotUseValueParameterTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/SetterDoesNotUseValueParameterTests.cs index 8af25d3d87..e651db9b1f 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/SetterDoesNotUseValueParameterTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/SetterDoesNotUseValueParameterTests.cs @@ -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);