Skip to content

Commit a66ebeb

Browse files
committed
Restrict the instance context of SA1101 to accessors
Fixes #2656
1 parent 822c56b commit a66ebeb

2 files changed

Lines changed: 23 additions & 4 deletions

File tree

StyleCop.Analyzers/StyleCop.Analyzers.Test/ReadabilityRules/SA1101UnitTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,20 @@ public class Foo
363363
await this.VerifyCSharpDiagnosticAsync(testCode, EmptyDiagnosticResults, CancellationToken.None).ConfigureAwait(false);
364364
}
365365

366+
[Fact]
367+
[WorkItem(2656, "https://github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/2656")]
368+
public async Task TestStaticMemberNameOfAsync()
369+
{
370+
var testCode = @"
371+
public class Foo
372+
{
373+
public string Array { get; } = nameof(Array);
374+
}
375+
";
376+
377+
await this.VerifyCSharpDiagnosticAsync(testCode, EmptyDiagnosticResults, CancellationToken.None).ConfigureAwait(false);
378+
}
379+
366380
protected override IEnumerable<DiagnosticAnalyzer> GetCSharpDiagnosticAnalyzers()
367381
{
368382
yield return new SA1101PrefixLocalCallsWithThis();

StyleCop.Analyzers/StyleCop.Analyzers/ReadabilityRules/SA1101PrefixLocalCallsWithThis.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,16 +231,21 @@ private static bool HasThis(SyntaxNode node)
231231

232232
case SyntaxKind.FieldDeclaration:
233233
case SyntaxKind.EventFieldDeclaration:
234+
case SyntaxKind.EventDeclaration:
235+
case SyntaxKind.PropertyDeclaration:
236+
case SyntaxKind.IndexerDeclaration:
234237
return false;
235238

236239
case SyntaxKind.MultiLineDocumentationCommentTrivia:
237240
case SyntaxKind.SingleLineDocumentationCommentTrivia:
238241
return false;
239242

240-
case SyntaxKind.EventDeclaration:
241-
case SyntaxKind.PropertyDeclaration:
242-
case SyntaxKind.IndexerDeclaration:
243-
BasePropertyDeclarationSyntax basePropertySyntax = (BasePropertyDeclarationSyntax)node;
243+
case SyntaxKind.GetAccessorDeclaration:
244+
case SyntaxKind.SetAccessorDeclaration:
245+
case SyntaxKind.AddAccessorDeclaration:
246+
case SyntaxKind.RemoveAccessorDeclaration:
247+
case SyntaxKind.UnknownAccessorDeclaration:
248+
BasePropertyDeclarationSyntax basePropertySyntax = (BasePropertyDeclarationSyntax)node.Parent.Parent;
244249
return !basePropertySyntax.Modifiers.Any(SyntaxKind.StaticKeyword);
245250

246251
case SyntaxKind.ConstructorDeclaration:

0 commit comments

Comments
 (0)