Skip to content

Commit 950cc79

Browse files
committed
Merge pull request #1749 from sharwell/fix-1748
Remove SA1003 handling for tokens covered by other diagnostics
2 parents 4b62e31 + 7f7e69b commit 950cc79

2 files changed

Lines changed: 30 additions & 7 deletions

File tree

StyleCop.Analyzers/StyleCop.Analyzers/Helpers/TriviaHelper.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,32 @@ public SyntaxTrivia Last()
485485
{
486486
return this[this.Count - 1];
487487
}
488+
489+
public bool Any(SyntaxKind kind)
490+
{
491+
return this.part1.Any(kind) || this.part2.Any(kind);
492+
}
493+
494+
public bool All(Func<SyntaxTrivia, bool> predicate)
495+
{
496+
foreach (var trivia in this.part1)
497+
{
498+
if (!predicate(trivia))
499+
{
500+
return false;
501+
}
502+
}
503+
504+
foreach (var trivia in this.part2)
505+
{
506+
if (!predicate(trivia))
507+
{
508+
return false;
509+
}
510+
}
511+
512+
return true;
513+
}
488514
}
489515
}
490516
}

StyleCop.Analyzers/StyleCop.Analyzers/SpacingRules/SA1003SymbolsMustBeSpacedCorrectly.cs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ namespace StyleCop.Analyzers.SpacingRules
55
{
66
using System;
77
using System.Collections.Immutable;
8-
using System.Linq;
98
using Microsoft.CodeAnalysis;
109
using Microsoft.CodeAnalysis.CSharp;
1110
using Microsoft.CodeAnalysis.CSharp.Syntax;
@@ -268,23 +267,21 @@ private static void HandlePrefixUnaryExpression(SyntaxNodeAnalysisContext contex
268267
switch (unaryExpression.OperatorToken.Kind())
269268
{
270269
case SyntaxKind.PlusToken:
271-
analyze = context.IsAnalyzerSuppressed(SA1022PositiveSignsMustBeSpacedCorrectly.DiagnosticId);
272-
break;
273270
case SyntaxKind.MinusToken:
274-
analyze = context.IsAnalyzerSuppressed(SA1021NegativeSignsMustBeSpacedCorrectly.DiagnosticId);
275-
break;
276271
case SyntaxKind.PlusPlusToken:
277272
case SyntaxKind.MinusMinusToken:
278-
analyze = context.IsAnalyzerSuppressed(SA1020IncrementDecrementSymbolsMustBeSpacedCorrectly.DiagnosticId);
273+
// These expressions are handled by SA1020, SA1021, SA1022
274+
analyze = false;
279275
break;
276+
280277
default:
281278
analyze = true;
282279
break;
283280
}
284281

285282
if (analyze)
286283
{
287-
if (followingTrivia.Any(t => t.IsKind(SyntaxKind.SingleLineCommentTrivia)) || followingTrivia.Any(t => t.IsKind(SyntaxKind.MultiLineCommentTrivia)))
284+
if (followingTrivia.Any(SyntaxKind.SingleLineCommentTrivia) || followingTrivia.Any(SyntaxKind.MultiLineCommentTrivia))
288285
{
289286
context.ReportDiagnostic(Diagnostic.Create(DescriptorNotFollowedByComment, unaryExpression.OperatorToken.GetLocation(), unaryExpression.OperatorToken.Text));
290287
}

0 commit comments

Comments
 (0)