@@ -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