@@ -3,6 +3,8 @@ case let .received(.some(value), timestamp):
33 print(value, timestamp)
44case Type.some(let value):
55 print(value)
6+ case values?.map { $0 * 2 }:
7+ break
68default:
79 break
810}
@@ -138,6 +140,53 @@ sourceFile
138140 calledExpression:
139141 declReferenceExpr
140142 baseName: identifier "print"
143+ switchCase
144+ label:
145+ switchCaseLabel
146+ colon: :
147+ caseKeyword: case
148+ caseItems:
149+ switchCaseItem
150+ pattern:
151+ expressionPattern
152+ expression:
153+ functionCallExpr
154+ arguments:
155+ additionalTrailingClosures:
156+ calledExpression:
157+ memberAccessExpr
158+ period: .
159+ declName:
160+ declReferenceExpr
161+ baseName: identifier "map"
162+ base:
163+ optionalChainingExpr
164+ expression:
165+ declReferenceExpr
166+ baseName: identifier "values"
167+ questionMark: ?
168+ trailingClosure:
169+ closureExpr
170+ leftBrace: {
171+ rightBrace: }
172+ statements:
173+ codeBlockItem
174+ item:
175+ infixOperatorExpr
176+ operator:
177+ binaryOperatorExpr
178+ operator: binaryOperator "*"
179+ leftOperand:
180+ declReferenceExpr
181+ baseName: dollarIdentifier "$0"
182+ rightOperand:
183+ integerLiteralExpr
184+ literal: integerLiteral "2"
185+ statements:
186+ codeBlockItem
187+ item:
188+ breakStmt
189+ breakKeyword: break
141190 switchCase
142191 label:
143192 switchDefaultLabel
@@ -159,7 +208,7 @@ top_level source="⟨body⟩"
159208 body:
160209 block source="⟨stmt⟩"
161210 stmt:
162- switch_expr source="switch ⟨value⟩ {\n⟨case⟩\n⟨case⟩\n⟨case⟩\n}"
211+ switch_expr source="switch ⟨value⟩ {\n⟨case⟩\n⟨case⟩\n⟨case⟩\n⟨case⟩\n }"
163212 value: identifier "event" source="event"
164213 case:
165214 switch_case source="case ⟨pattern⟩:\n ⟨body⟩"
@@ -216,6 +265,35 @@ top_level source="⟨body⟩"
216265 argument:
217266 argument source="⟨value⟩"
218267 value: identifier "value" source="value"
268+ switch_case source="case ⟨pattern⟩:\n ⟨body⟩"
269+ pattern:
270+ call_expr source="⟨callee⟩ ⟨argument⟩"
271+ callee:
272+ member_access_expr source="⟨base⟩.⟨member_name_node⟩"
273+ base:
274+ call_expr source="⟨argument⟩?"
275+ callee:
276+ member_access_expr source=""
277+ base: identifier "Optional" source=""
278+ member_name_node: identifier "some" source=""
279+ argument:
280+ argument source="⟨value⟩"
281+ value: identifier "values" source="values"
282+ member_name_node: identifier "map" source="map"
283+ argument:
284+ argument source="⟨value⟩"
285+ value:
286+ function_expr source="{ ⟨body⟩ }"
287+ body:
288+ block source="⟨stmt⟩"
289+ stmt:
290+ binary_expr source="⟨left⟩ ⟨operator⟩ ⟨right⟩"
291+ left: identifier "$0" source="$0"
292+ operator: infix_operator "*" source="*"
293+ right: int_literal "2" source="2"
294+ body:
295+ block source="⟨stmt⟩"
296+ stmt: break_expr "break" source="break"
219297 switch_case source="default:\n ⟨body⟩"
220298 body:
221299 block source="⟨stmt⟩"
0 commit comments