@@ -257,16 +257,20 @@ final class DependenciesArrayWriter: SyntaxRewriter {
257
257
/// Writer for inserting a trailing comma in an array expr.
258
258
final class ArrayTrailingCommaWriter : SyntaxRewriter {
259
259
let lastElement : ArrayElementSyntax
260
+ let addSpaceAfterComma : Bool
260
261
261
- init ( lastElement: ArrayElementSyntax ) {
262
+ init ( lastElement: ArrayElementSyntax , addSpaceAfterComma : Bool ) {
262
263
self . lastElement = lastElement
264
+ self . addSpaceAfterComma = addSpaceAfterComma
263
265
}
264
266
265
267
override func visit( _ node: ArrayElementSyntax ) -> Syntax {
266
268
guard lastElement == node else {
267
269
return Syntax ( node)
268
270
}
269
- return Syntax ( node. withTrailingComma ( SyntaxFactory . makeCommaToken ( trailingTrivia: . spaces( 1 ) ) ) )
271
+ return Syntax ( node. withTrailingComma ( SyntaxFactory . makeCommaToken (
272
+ trailingTrivia: addSpaceAfterComma ? . spaces( 1 ) : [ ] ) )
273
+ )
270
274
}
271
275
}
272
276
@@ -334,12 +338,16 @@ final class PackageDependencyWriter: SyntaxRewriter {
334
338
let rightBrace = SyntaxFactory . makeRightSquareBracketToken (
335
339
leadingTrivia: [ . newlines( 1 ) , . spaces( 4 ) ] )
336
340
337
- let newElements = SyntaxFactory . makeArrayElementList (
338
- node. elements. dropLast ( ) +
339
- [ node. elements. last? . withTrailingComma ( SyntaxFactory . makeCommaToken ( ) ) ,
340
- newDependencyElement] . compactMap { $0} )
341
+ var newNode = node
342
+ if newNode. elements. count > 0 {
343
+ let lastElement = newNode. elements. map { $0} . last!
344
+ let trailingTriviaWriter = ArrayTrailingCommaWriter ( lastElement: lastElement,
345
+ addSpaceAfterComma: false )
346
+ let newElements = trailingTriviaWriter. visit ( newNode. elements)
347
+ newNode = newNode. withElements ( ( newElements. as ( ArrayElementListSyntax . self) !) )
348
+ }
341
349
342
- return ExprSyntax ( node . withElements ( newElements )
350
+ return ExprSyntax ( newNode . addElement ( newDependencyElement )
343
351
. withRightSquare ( rightBrace) )
344
352
}
345
353
}
@@ -360,7 +368,8 @@ final class TargetDependencyWriter: SyntaxRewriter {
360
368
// Insert trailing comma, if needed.
361
369
if node. elements. count > 0 {
362
370
let lastElement = node. elements. map { $0} . last!
363
- let trailingTriviaWriter = ArrayTrailingCommaWriter ( lastElement: lastElement)
371
+ let trailingTriviaWriter = ArrayTrailingCommaWriter ( lastElement: lastElement,
372
+ addSpaceAfterComma: true )
364
373
let newElements = trailingTriviaWriter. visit ( node. elements)
365
374
node = node. withElements ( ( newElements. as ( ArrayElementListSyntax . self) !) )
366
375
}
0 commit comments