Skip to content

Commit be8c694

Browse files
perf: use overload for Any( SyntaxTriviaList to prevent allocations
1 parent adf7026 commit be8c694

File tree

5 files changed

+16
-28
lines changed

5 files changed

+16
-28
lines changed

Src/CSharpier.Core/CSharp/SyntaxPrinter/Modifiers.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using CSharpier.Core.DocTypes;
2+
using CSharpier.Core.Utilities;
23
using Microsoft.CodeAnalysis;
34

45
namespace CSharpier.Core.CSharp.SyntaxPrinter;

Src/CSharpier.Core/CSharp/SyntaxPrinter/RightHandSide.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using CSharpier.Core.DocTypes;
2+
using CSharpier.Core.Utilities;
23
using Microsoft.CodeAnalysis.CSharp;
34
using Microsoft.CodeAnalysis.CSharp.Syntax;
45

Src/CSharpier.Core/CSharp/SyntaxPrinter/SyntaxNodePrinters/Parameter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public static Doc Print(ParameterSyntax node, PrintingContext context)
1919
if (
2020
node.AttributeLists.Count < 2
2121
&& (
22-
Enumerable.Any(node.GetLeadingTrivia(), o => o.IsComment())
22+
node.GetLeadingTrivia().Any(o => o.IsComment())
2323
|| node.Parent is ParameterListSyntax { Parameters.Count: 0 }
2424
)
2525
)

Src/CSharpier.Core/CSharp/SyntaxPrinter/SyntaxNodePrinters/RecursivePattern.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,8 @@ or BinaryPatternSyntax
7878
result.Add(
7979
Doc.Group(
8080
node.Type != null
81-
&& !Enumerable.Any(
82-
node.PropertyPatternClause.OpenBraceToken.LeadingTrivia,
83-
o => o.IsDirective || o.IsComment()
81+
&& !node.PropertyPatternClause.OpenBraceToken.LeadingTrivia.Any(o =>
82+
o.IsDirective || o.IsComment()
8483
)
8584
? Doc.Line
8685
: Doc.Null,

Src/CSharpier.Core/CSharp/SyntaxPrinter/Token.cs

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ or SyntaxKind.InterpolatedRawStringEndToken
131131
{
132132
if (
133133
context.State.TrailingComma is not null
134-
&& Enumerable.FirstOrDefault(syntaxToken.TrailingTrivia, o => o.IsComment())
134+
&& syntaxToken.TrailingTrivia.FirstOrDefault(o => o.IsComment())
135135
== context.State.TrailingComma.TrailingComment
136136
)
137137
{
@@ -174,7 +174,8 @@ public static Doc PrintLeadingTrivia(SyntaxToken syntaxToken, PrintingContext co
174174
skipLastHardline: isClosingBrace
175175
);
176176

177-
var hasDirective = Enumerable.Any(syntaxToken.LeadingTrivia, o => o.IsDirective);
177+
var leadingTrivia = syntaxToken.LeadingTrivia;
178+
var hasDirective = leadingTrivia.Any(o => o.IsDirective);
178179

179180
if (hasDirective)
180181
{
@@ -198,7 +199,7 @@ public static Doc PrintLeadingTrivia(SyntaxToken syntaxToken, PrintingContext co
198199

199200
Doc extraNewLines = Doc.Null;
200201

201-
if (hasDirective || Enumerable.Any(syntaxToken.LeadingTrivia, o => o.IsComment()))
202+
if (hasDirective || leadingTrivia.Any(o => o.IsComment()))
202203
{
203204
extraNewLines = ExtraNewLines.Print(syntaxToken.LeadingTrivia);
204205
}
@@ -351,12 +352,7 @@ void AddLeadingComment(CommentType commentType)
351352

352353
if (context.State.NextTriviaNeedsLine)
353354
{
354-
if (
355-
Enumerable.Any(
356-
leadingTrivia,
357-
o => o.RawSyntaxKind() is SyntaxKind.IfDirectiveTrivia
358-
)
359-
)
355+
if (leadingTrivia.Any(o => o.RawSyntaxKind() is SyntaxKind.IfDirectiveTrivia))
360356
{
361357
docs.Insert(0, Doc.HardLineSkipBreakIfFirstInGroup);
362358
}
@@ -430,17 +426,11 @@ private static Doc PrintTrailingTrivia(in SyntaxTriviaList trailingTrivia)
430426

431427
public static bool HasComments(SyntaxToken syntaxToken)
432428
{
433-
return Enumerable.Any(
434-
syntaxToken.LeadingTrivia,
435-
o =>
436-
o.RawSyntaxKind()
437-
is not (SyntaxKind.WhitespaceTrivia or SyntaxKind.EndOfLineTrivia)
429+
return syntaxToken.LeadingTrivia.Any(o =>
430+
o.RawSyntaxKind() is not (SyntaxKind.WhitespaceTrivia or SyntaxKind.EndOfLineTrivia)
438431
)
439-
|| Enumerable.Any(
440-
syntaxToken.TrailingTrivia,
441-
o =>
442-
o.RawSyntaxKind()
443-
is not (SyntaxKind.WhitespaceTrivia or SyntaxKind.EndOfLineTrivia)
432+
|| syntaxToken.TrailingTrivia.Any(o =>
433+
o.RawSyntaxKind() is not (SyntaxKind.WhitespaceTrivia or SyntaxKind.EndOfLineTrivia)
444434
);
445435
}
446436

@@ -463,11 +453,8 @@ public static bool HasLeadingCommentMatching(SyntaxNode node, Regex regex)
463453

464454
public static bool HasLeadingCommentMatching(SyntaxToken token, Regex regex)
465455
{
466-
return Enumerable.Any(
467-
token.LeadingTrivia,
468-
o =>
469-
o.RawSyntaxKind() is SyntaxKind.SingleLineCommentTrivia
470-
&& regex.IsMatch(o.ToString())
456+
return token.LeadingTrivia.Any(o =>
457+
o.RawSyntaxKind() is SyntaxKind.SingleLineCommentTrivia && regex.IsMatch(o.ToString())
471458
);
472459
}
473460
}

0 commit comments

Comments
 (0)