@@ -44,9 +44,10 @@ func isExprMigrated(_ node: ExprSyntax) -> Bool {
44
44
. booleanLiteralExpr, . borrowExpr, . closureExpr, . consumeExpr, . copyExpr,
45
45
. discardAssignmentExpr, . declReferenceExpr, . dictionaryExpr,
46
46
. functionCallExpr, . ifExpr, . integerLiteralExpr, . memberAccessExpr,
47
- . nilLiteralExpr, . postfixOperatorExpr, . prefixOperatorExpr,
48
- . sequenceExpr, . stringLiteralExpr, . tryExpr, . tupleExpr, . typeExpr,
49
- . unresolvedAsExpr, . unresolvedIsExpr, . unresolvedTernaryExpr:
47
+ . nilLiteralExpr, . packElementExpr, . packExpansionExpr,
48
+ . postfixOperatorExpr, . prefixOperatorExpr, . sequenceExpr,
49
+ . stringLiteralExpr, . tryExpr, . tupleExpr, . typeExpr, . unresolvedAsExpr,
50
+ . unresolvedIsExpr, . unresolvedTernaryExpr:
50
51
51
52
// `generate(stringLiteralExpr:)` doesn't support interpolations.
52
53
if let str = current. as ( StringLiteralExprSyntax . self) {
@@ -62,10 +63,9 @@ func isExprMigrated(_ node: ExprSyntax) -> Bool {
62
63
. doExpr, . editorPlaceholderExpr, . floatLiteralExpr, . forceUnwrapExpr,
63
64
. inOutExpr, . infixOperatorExpr, . isExpr, . keyPathExpr,
64
65
. macroExpansionExpr, . optionalChainingExpr,
65
- . packElementExpr, . packExpansionExpr, . postfixIfConfigExpr,
66
- . regexLiteralExpr, . genericSpecializationExpr, . simpleStringLiteralExpr,
67
- . subscriptCallExpr, . superExpr, . switchExpr, . ternaryExpr,
68
- . patternExpr:
66
+ . postfixIfConfigExpr, . regexLiteralExpr, . genericSpecializationExpr,
67
+ . simpleStringLiteralExpr, . subscriptCallExpr, . superExpr, . switchExpr,
68
+ . ternaryExpr, . patternExpr:
69
69
return false
70
70
case // Unknown expr kinds.
71
71
_ where current. is ( ExprSyntax . self) :
@@ -155,10 +155,10 @@ extension ASTGenVisitor {
155
155
case . optionalChainingExpr:
156
156
// Need special care to wrap the entire postfix chain with OptionalEvaluationExpr.
157
157
break
158
- case . packElementExpr:
159
- break
160
- case . packExpansionExpr:
161
- break
158
+ case . packElementExpr( let node ) :
159
+ return self . generate ( packElementExpr : node ) . asExpr
160
+ case . packExpansionExpr( let node ) :
161
+ return self . generate ( packExpansionExpr : node ) . asExpr
162
162
case . patternExpr:
163
163
break
164
164
case . postfixIfConfigExpr:
@@ -413,6 +413,22 @@ extension ASTGenVisitor {
413
413
}
414
414
}
415
415
416
+ func generate( packElementExpr node: PackElementExprSyntax ) -> BridgedPackElementExpr {
417
+ return . createParsed(
418
+ self . ctx,
419
+ eachLoc: self . generateSourceLoc ( node. eachKeyword) ,
420
+ packRefExpr: self . generate ( expr: node. pack)
421
+ )
422
+ }
423
+
424
+ func generate( packExpansionExpr node: PackExpansionExprSyntax ) -> BridgedPackExpansionExpr {
425
+ return . createParsed(
426
+ self . ctx,
427
+ repeatLoc: self . generateSourceLoc ( node. repeatKeyword) ,
428
+ patternExpr: self . generate ( expr: node. repetitionPattern)
429
+ )
430
+ }
431
+
416
432
func generate( ifExpr node: IfExprSyntax ) -> BridgedSingleValueStmtExpr {
417
433
let stmt = makeIfStmt ( node) . asStmt
418
434
0 commit comments