Skip to content

Commit 4695dc7

Browse files
committed
Remove unnecessary feature checks
We now check these with the spec set.
1 parent 6e20f54 commit 4695dc7

File tree

2 files changed

+23
-57
lines changed

2 files changed

+23
-57
lines changed

Sources/SwiftParser/Declarations.swift

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -138,8 +138,6 @@ extension TokenConsumer {
138138
// FIXME: C++ parser returns true if this is a top-level non-"script" files.
139139
// But we don't have "is library" flag.
140140
return false
141-
case .rhs(._borrowing), .rhs(._consuming), .rhs(._mutating):
142-
return experimentalFeatures.contains(.referenceBindings)
143141
case .some(_):
144142
// All other decl start keywords unconditionally start a decl.
145143
return true
@@ -249,16 +247,8 @@ extension Parser {
249247
return RawDeclSyntax(self.parseMacroDeclaration(attrs: attrs, introducerHandle: handle))
250248
case (.lhs(.pound), let handle)?:
251249
return RawDeclSyntax(self.parseMacroExpansionDeclaration(attrs, handle))
252-
case (.rhs(let binding), let handle)?:
253-
switch binding {
254-
case ._mutating, ._borrowing, ._consuming:
255-
guard experimentalFeatures.contains(.referenceBindings) else {
256-
break
257-
}
258-
fallthrough
259-
case .let, .var, .inout:
260-
return RawDeclSyntax(self.parseBindingDeclaration(attrs, handle, inMemberDeclList: inMemberDeclList))
261-
}
250+
case (.rhs, let handle)?:
251+
return RawDeclSyntax(self.parseBindingDeclaration(attrs, handle, inMemberDeclList: inMemberDeclList))
262252
case nil:
263253
break
264254
}

Sources/SwiftParser/Patterns.swift

Lines changed: 21 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)