Skip to content

Commit 81250fe

Browse files
committed
Avoid unnecessary calls to GetPreviousToken()
1 parent a674a3b commit 81250fe

1 file changed

Lines changed: 7 additions & 10 deletions

File tree

StyleCop.Analyzers/StyleCop.Analyzers/LayoutRules/SA1509OpeningBracesMustNotBePrecededByBlankLine.cs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -75,24 +75,21 @@ private static void HandleSyntaxTree(SyntaxTreeAnalysisContext context)
7575
{
7676
var syntaxRoot = context.Tree.GetRoot(context.CancellationToken);
7777

78-
var openBraces = syntaxRoot.DescendantTokens()
79-
.Where(t => t.IsKind(SyntaxKind.OpenBraceToken));
80-
81-
foreach (var openBrace in openBraces)
78+
SyntaxToken previousToken = default(SyntaxToken);
79+
foreach (var token in syntaxRoot.DescendantTokens())
8280
{
83-
if (openBrace.GetPreviousToken().IsKind(SyntaxKind.CloseBraceToken))
81+
if (token.IsKind(SyntaxKind.OpenBraceToken) && !previousToken.IsKind(SyntaxKind.CloseBraceToken))
8482
{
85-
continue;
83+
AnalyzeOpenBrace(context, token, previousToken);
8684
}
8785

88-
AnalyzeOpenBrace(context, openBrace);
86+
previousToken = token;
8987
}
9088
}
9189

92-
private static void AnalyzeOpenBrace(SyntaxTreeAnalysisContext context, SyntaxToken openBrace)
90+
private static void AnalyzeOpenBrace(SyntaxTreeAnalysisContext context, SyntaxToken openBrace, SyntaxToken previousToken)
9391
{
94-
var prevToken = openBrace.GetPreviousToken();
95-
var triviaList = TriviaHelper.MergeTriviaLists(prevToken.TrailingTrivia, openBrace.LeadingTrivia);
92+
var triviaList = TriviaHelper.MergeTriviaLists(previousToken.TrailingTrivia, openBrace.LeadingTrivia);
9693

9794
var done = false;
9895
var eolCount = 0;

0 commit comments

Comments
 (0)