@@ -45,18 +45,18 @@ func isExprMigrated(_ node: ExprSyntax) -> Bool {
4545 . discardAssignmentExpr, . declReferenceExpr, . dictionaryExpr,
4646 . functionCallExpr, . ifExpr, . integerLiteralExpr, . memberAccessExpr,
4747 . nilLiteralExpr, . packElementExpr, . packExpansionExpr, . patternExpr,
48- . postfixOperatorExpr, . prefixOperatorExpr, . sequenceExpr,
49- . stringLiteralExpr, . tryExpr, . tupleExpr, . typeExpr, . unresolvedAsExpr,
50- . unresolvedIsExpr, . unresolvedTernaryExpr:
48+ . postfixOperatorExpr, . prefixOperatorExpr, . regexLiteralExpr, . sequenceExpr,
49+ . simpleStringLiteralExpr, . subscriptCallExpr, . stringLiteralExpr, . superExpr,
50+ . tryExpr, . tupleExpr, . typeExpr, . unresolvedAsExpr, . unresolvedIsExpr,
51+ . unresolvedTernaryExpr:
5152 break
5253
5354 // Known unimplemented kinds.
5455 case . asExpr,
5556 . doExpr, . editorPlaceholderExpr, . floatLiteralExpr, . forceUnwrapExpr,
5657 . inOutExpr, . infixOperatorExpr, . isExpr, . keyPathExpr,
5758 . macroExpansionExpr, . optionalChainingExpr,
58- . postfixIfConfigExpr, . regexLiteralExpr, . genericSpecializationExpr,
59- . simpleStringLiteralExpr, . subscriptCallExpr, . superExpr, . switchExpr,
59+ . postfixIfConfigExpr, . genericSpecializationExpr, . switchExpr,
6060 . ternaryExpr:
6161 return false
6262
@@ -156,22 +156,22 @@ extension ASTGenVisitor {
156156 return self . generate ( postfixOperatorExpr: node) . asExpr
157157 case . prefixOperatorExpr( let node) :
158158 return self . generate ( prefixOperatorExpr: node) . asExpr
159- case . regexLiteralExpr:
160- break
159+ case . regexLiteralExpr( let node ) :
160+ return self . generate ( regexLiteralExpr : node )
161161 case . sequenceExpr( let node) :
162162 return self . generate ( sequenceExpr: node)
163163 case . simpleStringLiteralExpr:
164- break
164+ preconditionFailure ( " SimpleStringLiteral expression only appear in attributes " )
165165 case . stringLiteralExpr( let node) :
166166 return self . generate ( stringLiteralExpr: node)
167- case . subscriptCallExpr:
168- break
169- case . superExpr:
170- break
167+ case . subscriptCallExpr( let node ) :
168+ return self . generate ( subscriptCallExpr : node ) . asExpr
169+ case . superExpr( let node ) :
170+ return self . generate ( superExpr : node ) . asExpr
171171 case . switchExpr:
172172 break
173- case . ternaryExpr:
174- break
173+ case . ternaryExpr( let node ) :
174+ preconditionFailure ( " Ternary expression only appear after operator folding " )
175175 case . tryExpr( let node) :
176176 return self . generate ( tryExpr: node)
177177 case . tupleExpr( let node) :
@@ -591,6 +591,23 @@ extension ASTGenVisitor {
591591 ) . asExpr
592592 }
593593
594+ func generate( subscriptCallExpr node: SubscriptCallExprSyntax ) -> BridgedSubscriptExpr {
595+ let callee = generate ( expr: node. calledExpression)
596+ let arguments = generateArgumentList (
597+ leftParen: node. leftSquare,
598+ labeledExprList: node. arguments,
599+ rightParen: node. rightSquare,
600+ trailingClosure: node. trailingClosure,
601+ additionalTrailingClosures: node. additionalTrailingClosures
602+ )
603+
604+ return . createParsed( self . ctx, baseExpr: callee, args: arguments)
605+ }
606+
607+ func generate( superExpr node: SuperExprSyntax ) -> BridgedSuperRefExpr {
608+ return . createParsed( self . ctx, superLoc: self . generateSourceLoc ( node) )
609+ }
610+
594611 func generate( tryExpr node: TryExprSyntax ) -> BridgedExpr {
595612 let tryLoc = self . generateSourceLoc ( node. tryKeyword)
596613 let subExpr = self . generate ( expr: node. expression)
0 commit comments