Skip to content

Commit 4185d9a

Browse files
committed
Added @seanwoodward code
1 parent 2d2891c commit 4185d9a

File tree

1 file changed

+31
-3
lines changed

1 file changed

+31
-3
lines changed

Sources/InlineSnapshotTesting/SwiftSyntax/SnapshotRewriter.swift

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,31 @@ final class SnapshotRewriter: SyntaxRewriter {
122122

123123
case 0:
124124
functionCallExpr.rightParen?.trailingTrivia = .space
125+
let trailingClosureTrivia = functionCallExpr.trailingClosure?.trailingTrivia
125126
if let snapshotClosure {
126-
functionCallExpr.trailingClosure = snapshotClosure // FIXME: ?? multipleTrailingClosures.removeFirst()
127+
// FIXME: ?? multipleTrailingClosures.removeFirst()
128+
functionCallExpr.trailingClosure =
129+
if let trailingClosureTrivia, trailingClosureTrivia.count > 0 {
130+
snapshotClosure.with(
131+
\.trailingTrivia,
132+
snapshotClosure.trailingTrivia + trailingClosureTrivia
133+
)
134+
} else {
135+
snapshotClosure
136+
}
127137
} else if !functionCallExpr.additionalTrailingClosures.isEmpty {
128138
let additionalTrailingClosure = functionCallExpr.additionalTrailingClosures.remove(
129139
at: functionCallExpr.additionalTrailingClosures.startIndex
130140
)
131-
functionCallExpr.trailingClosure = additionalTrailingClosure.closure
141+
functionCallExpr.trailingClosure =
142+
if let trailingClosureTrivia, trailingClosureTrivia.count > 0 {
143+
additionalTrailingClosure.closure.with(
144+
\.trailingTrivia,
145+
additionalTrailingClosure.closure.trailingTrivia + trailingClosureTrivia
146+
)
147+
} else {
148+
additionalTrailingClosure.closure
149+
}
132150
} else {
133151
functionCallExpr.rightParen?.trailingTrivia = ""
134152
functionCallExpr.trailingClosure = nil
@@ -164,7 +182,17 @@ final class SnapshotRewriter: SyntaxRewriter {
164182
) {
165183
if let snapshotClosure {
166184
functionCallExpr.additionalTrailingClosures[index].label = snapshotLabel
167-
functionCallExpr.additionalTrailingClosures[index].closure = snapshotClosure
185+
let trailingTrivia = functionCallExpr.additionalTrailingClosures[index].closure
186+
.trailingTrivia
187+
functionCallExpr.additionalTrailingClosures[index].closure =
188+
if trailingTrivia.count > 0 {
189+
snapshotClosure.with(
190+
\.trailingTrivia,
191+
snapshotClosure.trailingTrivia + trailingTrivia
192+
)
193+
} else {
194+
snapshotClosure
195+
}
168196
} else {
169197
functionCallExpr.additionalTrailingClosures.remove(at: index)
170198
}

0 commit comments

Comments
 (0)