Skip to content

Commit a685ed3

Browse files
committed
Don’t add entirely missing elements to collection literals
1 parent ef7bba7 commit a685ed3

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

Sources/SwiftParser/Expressions.swift

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1561,21 +1561,27 @@ extension Parser {
15611561

15621562
switch elementKind! {
15631563
case .array(let el):
1564-
elements.append(RawSyntax(RawArrayElementSyntax(
1565-
expression: el, trailingComma: comma, arena: self.arena)))
1566-
if el.is(RawMissingExprSyntax.self) {
1564+
let element = RawArrayElementSyntax(
1565+
expression: el, trailingComma: comma, arena: self.arena
1566+
)
1567+
if element.raw.byteLength == 0 {
15671568
break COLLECTION_LOOP
1569+
} else {
1570+
elements.append(RawSyntax(element))
15681571
}
15691572
case .dictionary(let key, let unexpectedBeforeColon, let colon, let value):
1570-
elements.append(RawSyntax(RawDictionaryElementSyntax(
1573+
let element = RawDictionaryElementSyntax(
15711574
keyExpression: key,
15721575
unexpectedBeforeColon,
15731576
colon: colon,
15741577
valueExpression: value,
15751578
trailingComma: comma,
1576-
arena: self.arena)))
1577-
if key.is(RawMissingExprSyntax.self), colon.isMissing, value.is(RawMissingExprSyntax.self) {
1579+
arena: self.arena
1580+
)
1581+
if element.raw.byteLength == 0 {
15781582
break COLLECTION_LOOP
1583+
} else {
1584+
elements.append(RawSyntax(element))
15791585
}
15801586
}
15811587

0 commit comments

Comments
 (0)