Skip to content

Commit 56a746d

Browse files
authored
Merge pull request #2931 from TTOzzi/fix-FunctionCallExprSyntax-builder-initializer
Remove default values for leftParen and rightParen parameters in the FunctionCallExprSyntax initializer
2 parents 6a8b21a + d3157cc commit 56a746d

File tree

11 files changed

+521
-13
lines changed

11 files changed

+521
-13
lines changed

CodeGeneration/Sources/SyntaxSupport/Child.swift

+7
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ public class Child: NodeChoiceConvertible {
9393
/// Whether this child is optional and can be `nil`.
9494
public let isOptional: Bool
9595

96+
/// Whether this child provides a default value when used as a parameter in a function.
97+
public let providesDefaultInitialization: Bool
98+
9699
public let experimentalFeature: ExperimentalFeature?
97100

98101
/// A name of this child that can be shown in diagnostics.
@@ -303,6 +306,7 @@ public class Child: NodeChoiceConvertible {
303306
nameForDiagnostics: String? = nil,
304307
documentation: String? = nil,
305308
isOptional: Bool = false,
309+
providesDefaultInitialization: Bool = true,
306310
newerChildPath: [Child] = []
307311
) {
308312
precondition(name.first?.isLowercase ?? true, "The first letter of a child’s name should be lowercase")
@@ -314,6 +318,7 @@ public class Child: NodeChoiceConvertible {
314318
self.documentationSummary = SwiftSyntax.Trivia.docCommentTrivia(from: documentation)
315319
self.documentationAbstract = String(documentation?.split(whereSeparator: \.isNewline).first ?? "")
316320
self.isOptional = isOptional
321+
self.providesDefaultInitialization = providesDefaultInitialization
317322
}
318323

319324
/// Create a node that is a copy of the last node in `newerChildPath`, but
@@ -329,6 +334,7 @@ public class Child: NodeChoiceConvertible {
329334
self.documentationSummary = other.documentationSummary
330335
self.documentationAbstract = other.documentationAbstract
331336
self.isOptional = other.isOptional
337+
self.providesDefaultInitialization = other.providesDefaultInitialization
332338
}
333339

334340
/// Create a child for the unexpected nodes between two children (either or
@@ -353,6 +359,7 @@ public class Child: NodeChoiceConvertible {
353359
nameForDiagnostics: nil,
354360
documentation: nil,
355361
isOptional: true,
362+
providesDefaultInitialization: true,
356363
newerChildPath: newerChildPath
357364
)
358365
}

CodeGeneration/Sources/SyntaxSupport/ExprNodes.swift

+4-2
Original file line numberDiff line numberDiff line change
@@ -944,7 +944,8 @@ public let EXPR_NODES: [Node] = [
944944
Child(
945945
name: "leftParen",
946946
kind: .token(choices: [.token(.leftParen)]),
947-
isOptional: true
947+
isOptional: true,
948+
providesDefaultInitialization: false
948949
),
949950
Child(
950951
name: "arguments",
@@ -954,7 +955,8 @@ public let EXPR_NODES: [Node] = [
954955
Child(
955956
name: "rightParen",
956957
kind: .token(choices: [.token(.rightParen)]),
957-
isOptional: true
958+
isOptional: true,
959+
providesDefaultInitialization: false
958960
),
959961
Child(
960962
name: "trailingClosure",

CodeGeneration/Sources/Utils/SyntaxBuildableChild.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ extension Child {
8686
/// ` = default_value` that can be used as the default value to for a
8787
/// function parameter. Otherwise, return `nil`.
8888
public var defaultInitialization: InitializerClauseSyntax? {
89-
if let defaultValue {
89+
if providesDefaultInitialization, let defaultValue {
9090
return InitializerClauseSyntax(
9191
equal: .equalToken(leadingTrivia: .space, trailingTrivia: .space),
9292
value: defaultValue

Sources/SwiftSyntax/SwiftSyntaxCompatibility.swift

+246
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,252 @@ extension GenericArgumentSyntax {
350350
}
351351
}
352352

353+
extension FunctionCallExprSyntax {
354+
@_disfavoredOverload
355+
@available(
356+
*,
357+
deprecated,
358+
message: "Use the initializer that does not provide default values for leftParen and rightParen."
359+
)
360+
public init(
361+
leadingTrivia: Trivia? = nil,
362+
_ unexpectedBeforeCalledExasdfpression: UnexpectedNodesSyntax? = nil,
363+
calledExpression: some ExprSyntaxProtocol,
364+
_ unexpectedBetweenCalledExpressionAndLeftParen: UnexpectedNodesSyntax? = nil,
365+
_ unexpectedBetweenLeftParenAndArguments: UnexpectedNodesSyntax? = nil,
366+
arguments: LabeledExprListSyntax,
367+
_ unexpectedBetweenArgumentsAndRightParen: UnexpectedNodesSyntax? = nil,
368+
rightParen: TokenSyntax?,
369+
_ unexpectedBetweenRightParenAndTrailingClosure: UnexpectedNodesSyntax? = nil,
370+
trailingClosure: ClosureExprSyntax? = nil,
371+
_ unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,
372+
additionalTrailingClosures: MultipleTrailingClosureElementListSyntax = [],
373+
_ unexpectedAfterAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,
374+
trailingTrivia: Trivia? = nil
375+
) {
376+
self.init(
377+
leadingTrivia: leadingTrivia,
378+
unexpectedBeforeCalledExasdfpression,
379+
calledExpression: calledExpression,
380+
leftParen: nil,
381+
unexpectedBetweenLeftParenAndArguments,
382+
arguments: arguments,
383+
unexpectedBetweenArgumentsAndRightParen,
384+
rightParen: rightParen,
385+
unexpectedBetweenRightParenAndTrailingClosure,
386+
trailingClosure: trailingClosure,
387+
unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures,
388+
additionalTrailingClosures: additionalTrailingClosures,
389+
unexpectedAfterAdditionalTrailingClosures,
390+
trailingTrivia: trailingTrivia
391+
)
392+
}
393+
394+
@_disfavoredOverload
395+
@available(
396+
*,
397+
deprecated,
398+
message: "Use the initializer that does not provide default values for leftParen and rightParen."
399+
)
400+
public init(
401+
leadingTrivia: Trivia? = nil,
402+
_ unexpectedBeforeCalledExasdfpression: UnexpectedNodesSyntax? = nil,
403+
calledExpression: some ExprSyntaxProtocol,
404+
_ unexpectedBetweenCalledExpressionAndLeftParen: UnexpectedNodesSyntax? = nil,
405+
leftParen: TokenSyntax?,
406+
_ unexpectedBetweenLeftParenAndArguments: UnexpectedNodesSyntax? = nil,
407+
arguments: LabeledExprListSyntax,
408+
_ unexpectedBetweenArgumentsAndRightParen: UnexpectedNodesSyntax? = nil,
409+
_ unexpectedBetweenRightParenAndTrailingClosure: UnexpectedNodesSyntax? = nil,
410+
trailingClosure: ClosureExprSyntax? = nil,
411+
_ unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,
412+
additionalTrailingClosures: MultipleTrailingClosureElementListSyntax = [],
413+
_ unexpectedAfterAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,
414+
trailingTrivia: Trivia? = nil
415+
) {
416+
self.init(
417+
leadingTrivia: leadingTrivia,
418+
unexpectedBeforeCalledExasdfpression,
419+
calledExpression: calledExpression,
420+
leftParen: leftParen,
421+
unexpectedBetweenLeftParenAndArguments,
422+
arguments: arguments,
423+
unexpectedBetweenArgumentsAndRightParen,
424+
rightParen: nil,
425+
unexpectedBetweenRightParenAndTrailingClosure,
426+
trailingClosure: trailingClosure,
427+
unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures,
428+
additionalTrailingClosures: additionalTrailingClosures,
429+
unexpectedAfterAdditionalTrailingClosures,
430+
trailingTrivia: trailingTrivia
431+
)
432+
}
433+
434+
@_disfavoredOverload
435+
@available(
436+
*,
437+
deprecated,
438+
message: "Use the initializer that does not provide default values for leftParen and rightParen."
439+
)
440+
public init(
441+
leadingTrivia: Trivia? = nil,
442+
_ unexpectedBeforeCalledExasdfpression: UnexpectedNodesSyntax? = nil,
443+
calledExpression: some ExprSyntaxProtocol,
444+
_ unexpectedBetweenCalledExpressionAndLeftParen: UnexpectedNodesSyntax? = nil,
445+
_ unexpectedBetweenLeftParenAndArguments: UnexpectedNodesSyntax? = nil,
446+
arguments: LabeledExprListSyntax,
447+
_ unexpectedBetweenArgumentsAndRightParen: UnexpectedNodesSyntax? = nil,
448+
_ unexpectedBetweenRightParenAndTrailingClosure: UnexpectedNodesSyntax? = nil,
449+
trailingClosure: ClosureExprSyntax? = nil,
450+
_ unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,
451+
additionalTrailingClosures: MultipleTrailingClosureElementListSyntax = [],
452+
_ unexpectedAfterAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,
453+
trailingTrivia: Trivia? = nil
454+
) {
455+
self.init(
456+
leadingTrivia: leadingTrivia,
457+
unexpectedBeforeCalledExasdfpression,
458+
calledExpression: calledExpression,
459+
leftParen: nil,
460+
unexpectedBetweenLeftParenAndArguments,
461+
arguments: arguments,
462+
unexpectedBetweenArgumentsAndRightParen,
463+
rightParen: nil,
464+
unexpectedBetweenRightParenAndTrailingClosure,
465+
trailingClosure: trailingClosure,
466+
unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures,
467+
additionalTrailingClosures: additionalTrailingClosures,
468+
unexpectedAfterAdditionalTrailingClosures,
469+
trailingTrivia: trailingTrivia
470+
)
471+
}
472+
473+
@_disfavoredOverload
474+
@available(
475+
*,
476+
deprecated,
477+
renamed:
478+
"init(leadingTrivia:_:calledExpression:_:leftParen:_:arguments:_:rightParen:_:trailingClosure:_:additionalTrailingClosures:_:trailingTrivia:)"
479+
)
480+
public init(
481+
leadingTrivia: Trivia? = nil,
482+
_ unexpectedBeforeCalledExpression: UnexpectedNodesSyntax? = nil,
483+
calledExpression: some ExprSyntaxProtocol,
484+
_ unexpectedBetweenCalledExpressionAndLeftParen: UnexpectedNodesSyntax? = nil,
485+
_ unexpectedBetweenLeftParenAndArgumentList: UnexpectedNodesSyntax? = nil,
486+
argumentList: LabeledExprListSyntax,
487+
_ unexpectedBetweenArgumentListAndRightParen: UnexpectedNodesSyntax? = nil,
488+
rightParen: TokenSyntax?,
489+
_ unexpectedBetweenRightParenAndTrailingClosure: UnexpectedNodesSyntax? = nil,
490+
trailingClosure: ClosureExprSyntax? = nil,
491+
_ unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,
492+
additionalTrailingClosures: MultipleTrailingClosureElementListSyntax = [],
493+
_ unexpectedAfterAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,
494+
trailingTrivia: Trivia? = nil
495+
) {
496+
self.init(
497+
leadingTrivia: leadingTrivia,
498+
unexpectedBeforeCalledExpression,
499+
calledExpression: calledExpression,
500+
unexpectedBetweenCalledExpressionAndLeftParen,
501+
leftParen: nil,
502+
unexpectedBetweenLeftParenAndArgumentList,
503+
arguments: argumentList,
504+
unexpectedBetweenArgumentListAndRightParen,
505+
rightParen: rightParen,
506+
unexpectedBetweenRightParenAndTrailingClosure,
507+
trailingClosure: trailingClosure,
508+
unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures,
509+
additionalTrailingClosures: additionalTrailingClosures,
510+
unexpectedAfterAdditionalTrailingClosures,
511+
trailingTrivia: trailingTrivia
512+
)
513+
}
514+
515+
@_disfavoredOverload
516+
@available(
517+
*,
518+
deprecated,
519+
renamed:
520+
"init(leadingTrivia:_:calledExpression:_:leftParen:_:arguments:_:rightParen:_:trailingClosure:_:additionalTrailingClosures:_:trailingTrivia:)"
521+
)
522+
public init(
523+
leadingTrivia: Trivia? = nil,
524+
_ unexpectedBeforeCalledExpression: UnexpectedNodesSyntax? = nil,
525+
calledExpression: some ExprSyntaxProtocol,
526+
_ unexpectedBetweenCalledExpressionAndLeftParen: UnexpectedNodesSyntax? = nil,
527+
leftParen: TokenSyntax?,
528+
_ unexpectedBetweenLeftParenAndArgumentList: UnexpectedNodesSyntax? = nil,
529+
argumentList: LabeledExprListSyntax,
530+
_ unexpectedBetweenArgumentListAndRightParen: UnexpectedNodesSyntax? = nil,
531+
_ unexpectedBetweenRightParenAndTrailingClosure: UnexpectedNodesSyntax? = nil,
532+
trailingClosure: ClosureExprSyntax? = nil,
533+
_ unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,
534+
additionalTrailingClosures: MultipleTrailingClosureElementListSyntax = [],
535+
_ unexpectedAfterAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,
536+
trailingTrivia: Trivia? = nil
537+
) {
538+
self.init(
539+
leadingTrivia: leadingTrivia,
540+
unexpectedBeforeCalledExpression,
541+
calledExpression: calledExpression,
542+
unexpectedBetweenCalledExpressionAndLeftParen,
543+
leftParen: leftParen,
544+
unexpectedBetweenLeftParenAndArgumentList,
545+
arguments: argumentList,
546+
unexpectedBetweenArgumentListAndRightParen,
547+
rightParen: nil,
548+
unexpectedBetweenRightParenAndTrailingClosure,
549+
trailingClosure: trailingClosure,
550+
unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures,
551+
additionalTrailingClosures: additionalTrailingClosures,
552+
unexpectedAfterAdditionalTrailingClosures,
553+
trailingTrivia: trailingTrivia
554+
)
555+
}
556+
557+
@_disfavoredOverload
558+
@available(
559+
*,
560+
deprecated,
561+
renamed:
562+
"init(leadingTrivia:_:calledExpression:_:leftParen:_:arguments:_:rightParen:_:trailingClosure:_:additionalTrailingClosures:_:trailingTrivia:)"
563+
)
564+
public init(
565+
leadingTrivia: Trivia? = nil,
566+
_ unexpectedBeforeCalledExpression: UnexpectedNodesSyntax? = nil,
567+
calledExpression: some ExprSyntaxProtocol,
568+
_ unexpectedBetweenCalledExpressionAndLeftParen: UnexpectedNodesSyntax? = nil,
569+
_ unexpectedBetweenLeftParenAndArgumentList: UnexpectedNodesSyntax? = nil,
570+
argumentList: LabeledExprListSyntax,
571+
_ unexpectedBetweenArgumentListAndRightParen: UnexpectedNodesSyntax? = nil,
572+
_ unexpectedBetweenRightParenAndTrailingClosure: UnexpectedNodesSyntax? = nil,
573+
trailingClosure: ClosureExprSyntax? = nil,
574+
_ unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,
575+
additionalTrailingClosures: MultipleTrailingClosureElementListSyntax = [],
576+
_ unexpectedAfterAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,
577+
trailingTrivia: Trivia? = nil
578+
) {
579+
self.init(
580+
leadingTrivia: leadingTrivia,
581+
unexpectedBeforeCalledExpression,
582+
calledExpression: calledExpression,
583+
unexpectedBetweenCalledExpressionAndLeftParen,
584+
leftParen: nil,
585+
unexpectedBetweenLeftParenAndArgumentList,
586+
arguments: argumentList,
587+
unexpectedBetweenArgumentListAndRightParen,
588+
rightParen: nil,
589+
unexpectedBetweenRightParenAndTrailingClosure,
590+
trailingClosure: trailingClosure,
591+
unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures,
592+
additionalTrailingClosures: additionalTrailingClosures,
593+
unexpectedAfterAdditionalTrailingClosures,
594+
trailingTrivia: trailingTrivia
595+
)
596+
}
597+
}
598+
353599
extension FunctionEffectSpecifiersSyntax {
354600
@_disfavoredOverload
355601
@available(*, deprecated, message: "use throwsClause instead of throwsSpecifier")

Sources/SwiftSyntax/generated/RenamedChildrenCompatibility.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -2911,11 +2911,11 @@ extension FunctionCallExprSyntax {
29112911
_ unexpectedBeforeCalledExpression: UnexpectedNodesSyntax? = nil,
29122912
calledExpression: some ExprSyntaxProtocol,
29132913
_ unexpectedBetweenCalledExpressionAndLeftParen: UnexpectedNodesSyntax? = nil,
2914-
leftParen: TokenSyntax? = nil,
2914+
leftParen: TokenSyntax?,
29152915
_ unexpectedBetweenLeftParenAndArgumentList: UnexpectedNodesSyntax? = nil,
29162916
argumentList: LabeledExprListSyntax,
29172917
_ unexpectedBetweenArgumentListAndRightParen: UnexpectedNodesSyntax? = nil,
2918-
rightParen: TokenSyntax? = nil,
2918+
rightParen: TokenSyntax?,
29192919
_ unexpectedBetweenRightParenAndTrailingClosure: UnexpectedNodesSyntax? = nil,
29202920
trailingClosure: ClosureExprSyntax? = nil,
29212921
_ unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesEF.swift

+2-2
Original file line numberDiff line numberDiff line change
@@ -3150,11 +3150,11 @@ public struct FunctionCallExprSyntax: ExprSyntaxProtocol, SyntaxHashable, _LeafE
31503150
_ unexpectedBeforeCalledExpression: UnexpectedNodesSyntax? = nil,
31513151
calledExpression: some ExprSyntaxProtocol,
31523152
_ unexpectedBetweenCalledExpressionAndLeftParen: UnexpectedNodesSyntax? = nil,
3153-
leftParen: TokenSyntax? = nil,
3153+
leftParen: TokenSyntax?,
31543154
_ unexpectedBetweenLeftParenAndArguments: UnexpectedNodesSyntax? = nil,
31553155
arguments: LabeledExprListSyntax,
31563156
_ unexpectedBetweenArgumentsAndRightParen: UnexpectedNodesSyntax? = nil,
3157-
rightParen: TokenSyntax? = nil,
3157+
rightParen: TokenSyntax?,
31583158
_ unexpectedBetweenRightParenAndTrailingClosure: UnexpectedNodesSyntax? = nil,
31593159
trailingClosure: ClosureExprSyntax? = nil,
31603160
_ unexpectedBetweenTrailingClosureAndAdditionalTrailingClosures: UnexpectedNodesSyntax? = nil,

0 commit comments

Comments
 (0)