@@ -86,24 +86,16 @@ extension Parser {
8686 arena: self . arena
8787 )
8888 )
89- case ( . rhs( let binding) , let handle) ? :
90- switch binding {
91- case . _mutating, . _borrowing, . _consuming:
92- guard experimentalFeatures. contains ( . referenceBindings) else {
93- break
94- }
95- fallthrough
96- case . let, . var, . inout:
97- let bindingSpecifier = self . eat ( handle)
98- let value = self . parsePattern ( )
99- return RawPatternSyntax (
100- RawValueBindingPatternSyntax (
101- bindingSpecifier: bindingSpecifier,
102- pattern: value,
103- arena: self . arena
104- )
89+ case ( . rhs, let handle) ? :
90+ let bindingSpecifier = self . eat ( handle)
91+ let value = self . parsePattern ( )
92+ return RawPatternSyntax (
93+ RawValueBindingPatternSyntax (
94+ bindingSpecifier: bindingSpecifier,
95+ pattern: value,
96+ arena: self . arena
10597 )
106- }
98+ )
10799 case nil :
108100 break
109101 }
@@ -227,24 +219,16 @@ extension Parser {
227219 arena: self . arena
228220 )
229221 )
230- case ( . rhs( let binding) , let handle) ? :
231- switch binding {
232- case . _mutating, . _borrowing, . _consuming:
233- guard experimentalFeatures. contains ( . referenceBindings) else {
234- break
235- }
236- fallthrough
237- case . let, . var, . inout:
238- let bindingSpecifier = self . eat ( handle)
239- let value = self . parseMatchingPattern ( context: . bindingIntroducer)
240- return RawPatternSyntax (
241- RawValueBindingPatternSyntax (
242- bindingSpecifier: bindingSpecifier,
243- pattern: value,
244- arena: self . arena
245- )
222+ case ( . rhs, let handle) ? :
223+ let bindingSpecifier = self . eat ( handle)
224+ let value = self . parseMatchingPattern ( context: . bindingIntroducer)
225+ return RawPatternSyntax (
226+ RawValueBindingPatternSyntax (
227+ bindingSpecifier: bindingSpecifier,
228+ pattern: value,
229+ arena: self . arena
246230 )
247- }
231+ )
248232 case nil :
249233 break
250234 }
@@ -311,17 +295,9 @@ extension Parser.Lookahead {
311295 return true
312296 case ( . lhs( . leftParen) , _) ? :
313297 return self . canParsePatternTuple ( )
314- case ( . rhs( let binding) , let handle) ? :
315- switch binding {
316- case . _mutating, . _borrowing, . _consuming:
317- guard experimentalFeatures. contains ( . referenceBindings) else {
318- return false
319- }
320- fallthrough
321- case . let, . var, . inout:
322- self . eat ( handle)
323- return self . canParsePattern ( )
324- }
298+ case ( . rhs, let handle) ? :
299+ self . eat ( handle)
300+ return self . canParsePattern ( )
325301 case nil :
326302 return false
327303 }
0 commit comments