@@ -88,21 +88,12 @@ extension Parser {
88
88
)
89
89
case ( . rhs( let binding) , let handle) ? :
90
90
switch binding {
91
- case . _mutating:
92
- fallthrough
93
- case . _borrowing:
94
- fallthrough
95
- case . _consuming:
91
+ case . _mutating, . _borrowing, . _consuming:
96
92
guard experimentalFeatures. contains ( . referenceBindings) else {
97
93
break
98
94
}
99
95
fallthrough
100
- case . let:
101
- fallthrough
102
- case . var:
103
- fallthrough
104
- case . inout:
105
- // Handle all cases of `ValueBindingPatternSyntax.BindingSpecifierOptions` in the same way.
96
+ case . let, . var, . inout:
106
97
let bindingSpecifier = self . eat ( handle)
107
98
let value = self . parsePattern ( )
108
99
return RawPatternSyntax (
@@ -225,7 +216,7 @@ extension Parser {
225
216
/// for-in loops and guard clauses.
226
217
mutating func parseMatchingPattern( context: PatternContext ) -> RawPatternSyntax {
227
218
// Parse productions that can only be patterns.
228
- OuterSwitch: switch self . at ( anyIn: MatchingPatternStart . self) {
219
+ switch self . at ( anyIn: MatchingPatternStart . self) {
229
220
case ( . lhs( . is) , let handle) ? :
230
221
let isKeyword = self . eat ( handle)
231
222
let type = self . parseType ( )
@@ -238,21 +229,12 @@ extension Parser {
238
229
)
239
230
case ( . rhs( let binding) , let handle) ? :
240
231
switch binding {
241
- case . _mutating:
242
- fallthrough
243
- case . _borrowing:
244
- fallthrough
245
- case . _consuming:
232
+ case . _mutating, . _borrowing, . _consuming:
246
233
guard experimentalFeatures. contains ( . referenceBindings) else {
247
- break OuterSwitch
234
+ break
248
235
}
249
236
fallthrough
250
- case . let:
251
- fallthrough
252
- case . var:
253
- fallthrough
254
- case . inout:
255
- // Handle all cases of `ValueBindingPatternSyntax.BindingSpecifierOptions` in the same way.
237
+ case . let, . var, . inout:
256
238
let bindingSpecifier = self . eat ( handle)
257
239
let value = self . parseMatchingPattern ( context: . bindingIntroducer)
258
240
return RawPatternSyntax (
@@ -327,27 +309,19 @@ extension Parser.Lookahead {
327
309
( . lhs( . wildcard) , let handle) ? :
328
310
self . eat ( handle)
329
311
return true
312
+ case ( . lhs( . leftParen) , _) ? :
313
+ return self . canParsePatternTuple ( )
330
314
case ( . rhs( let binding) , let handle) ? :
331
315
switch binding {
332
- case . _mutating:
333
- fallthrough
334
- case . _borrowing:
335
- fallthrough
336
- case . _consuming:
316
+ case . _mutating, . _borrowing, . _consuming:
337
317
guard experimentalFeatures. contains ( . referenceBindings) else {
338
318
return false
339
319
}
340
320
fallthrough
341
- case . let:
342
- fallthrough
343
- case . var:
344
- fallthrough
345
- case . inout:
321
+ case . let, . var, . inout:
346
322
self . eat ( handle)
347
323
return self . canParsePattern ( )
348
324
}
349
- case ( . lhs( . leftParen) , _) ? :
350
- return self . canParsePatternTuple ( )
351
325
case nil :
352
326
return false
353
327
}
0 commit comments