Skip to content

Commit 37aaa9e

Browse files
perf: add Concat(IEnumerable) overload and remove ToArray
1 parent 6651de9 commit 37aaa9e

File tree

11 files changed

+39
-23
lines changed

11 files changed

+39
-23
lines changed

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ PrintingContext context
8080
sortedModifiers
8181
.Skip(1)
8282
.Select(o => Token.PrintWithSuffix(o, " ", context))
83-
.ToArray()
8483
)
8584
: Doc.Null
8685
)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ public static Doc Print(ArrayTypeSyntax node, PrintingContext context)
99
{
1010
return Doc.Concat(
1111
Node.Print(node.ElementType, context),
12-
Doc.Concat(node.RankSpecifiers.Select(o => Node.Print(o, context)).ToArray())
12+
Doc.Concat(node.RankSpecifiers.Select(o => Node.Print(o, context)))
1313
);
1414
}
1515
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,6 @@ node.Parent is CompilationUnitSyntax compilationUnitSyntax
8989

9090
docs.Append(Token.Print(node.CloseBracketToken, context));
9191

92-
return Doc.Group(docs.AsSpan().ToArray());
92+
return Doc.Group(Doc.Concat(ref docs));
9393
}
9494
}

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ PrintingContext context
9494
node.AccessorList.Accessors.Select(o =>
9595
PrintAccessorDeclarationSyntax(o, separator, context)
9696
)
97-
.ToArray()
9897
),
9998
separator,
10099
Token.Print(node.AccessorList.CloseBraceToken, context)

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,7 @@ node.Parent is ConditionalExpressionSyntax conditionalExpressionSyntax
4242
&& conditionalExpressionSyntax.WhenFalse != node
4343
);
4444

45-
return shouldNotIndent
46-
? Doc.Group(docs)
47-
: Doc.Group(docs[0], Doc.Indent(docs.Skip(1).ToList()));
45+
return shouldNotIndent ? Doc.Group(docs) : Doc.Group(docs[0], Doc.Indent(docs.Skip(1)));
4846
}
4947

5048
// The goal of this is to group operators of the same precedence such that they all break or none of them break

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ internal static class ImplicitArrayCreationExpression
77
{
88
public static Doc Print(ImplicitArrayCreationExpressionSyntax node, PrintingContext context)
99
{
10-
var commas = node.Commas.Select(o => Token.Print(o, context)).ToArray();
10+
var commas = node.Commas.Select(o => Token.Print(o, context));
1111
return Doc.Group(
1212
Token.Print(node.NewKeyword, context),
1313
Token.Print(node.OpenBracketToken, context),

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,11 @@ is LiteralExpressionSyntax
9292
}
9393

9494
var expanded = Doc.Concat(
95-
Doc.Concat(groups[0].Select(o => o.Doc).ToArray()),
95+
Doc.Concat(groups[0].Select(o => o.Doc)),
9696
shouldMergeFirstTwoGroups
9797
? Doc.IndentIf(
9898
groups.Count > 2 && groups[1].Last().Doc is not Group { Contents: IndentDoc },
99-
Doc.Concat(groups[1].Select(o => o.Doc).ToArray())
99+
Doc.Concat(groups[1].Select(o => o.Doc))
100100
)
101101
: Doc.Null,
102102
PrintIndentedGroup(groups.Skip(shouldMergeFirstTwoGroups ? 2 : 1).ToList())

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,6 @@ public static Doc Print(ParameterSyntax node, PrintingContext context)
5353
docs.Append(EqualsValueClause.Print(node.Default, context));
5454
}
5555

56-
return hasAttribute ? Doc.Group(docs.AsSpan().ToArray()) : Doc.Concat(ref docs);
56+
return hasAttribute ? Doc.Group(Doc.Concat(ref docs)) : Doc.Concat(ref docs);
5757
}
5858
}

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

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,7 @@ public static Doc Print(SwitchSectionSyntax node, PrintingContext context)
1919
docs.Append(
2020
Doc.Indent(
2121
node.Statements.First() is BlockSyntax ? Doc.Null : Doc.HardLine,
22-
Doc.Join(
23-
Doc.HardLine,
24-
node.Statements.Select(o => Node.Print(o, context)).ToArray()
25-
)
22+
Doc.Join(Doc.HardLine, node.Statements.Select(o => Node.Print(o, context)))
2623
)
2724
);
2825
}

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,13 +168,14 @@ public static Doc PrintLeadingTrivia(SyntaxToken syntaxToken, PrintingContext co
168168
|| syntaxToken.Parent is CollectionExpressionSyntax
169169
&& syntaxToken.RawSyntaxKind() == SyntaxKind.CloseBracketToken;
170170

171+
var leadingTrivia = syntaxToken.LeadingTrivia;
171172
var printedTrivia = PrivatePrintLeadingTrivia(
172-
syntaxToken.LeadingTrivia,
173+
leadingTrivia,
173174
context,
174175
skipLastHardline: isClosingBrace
175176
);
176177

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

179180
if (hasDirective)
180181
{
@@ -198,9 +199,9 @@ 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 || Enumerable.Any(leadingTrivia, o => o.IsComment()))
202203
{
203-
extraNewLines = ExtraNewLines.Print(syntaxToken.LeadingTrivia);
204+
extraNewLines = ExtraNewLines.Print(leadingTrivia);
204205
}
205206

206207
return printedTrivia != Doc.Null || extraNewLines != Doc.Null

0 commit comments

Comments
 (0)