Skip to content

Commit 2f20d2a

Browse files
committed
Remove AvailabilitySpecSource
It’s no longer needed
1 parent 6769bb6 commit 2f20d2a

File tree

3 files changed

+19
-39
lines changed

3 files changed

+19
-39
lines changed

Sources/SwiftParser/Attributes.swift

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -149,10 +149,8 @@ extension Parser {
149149

150150
let argument: RawAttributeSyntax.Argument
151151
do {
152-
if self.peek().rawTokenKind == .integerLiteral {
153-
argument = .availability(self.parseAvailabilitySpecList(from: .available))
154-
} else if self.peek().rawTokenKind == .floatingLiteral {
155-
argument = .availability(self.parseAvailabilitySpecList(from: .available))
152+
if self.peek().rawTokenKind == .integerLiteral || self.peek().rawTokenKind == .floatingLiteral {
153+
argument = .availability(self.parseAvailabilitySpecList())
156154
} else {
157155
argument = .availability(self.parseExtendedAvailabilitySpecList())
158156
}
@@ -181,10 +179,8 @@ extension Parser {
181179

182180
let argument: RawAttributeSyntax.Argument
183181
do {
184-
if self.peek().rawTokenKind == .integerLiteral {
185-
argument = .availability(self.parseAvailabilitySpecList(from: .available))
186-
} else if self.peek().rawTokenKind == .floatingLiteral {
187-
argument = .availability(self.parseAvailabilitySpecList(from: .available))
182+
if self.peek().rawTokenKind == .integerLiteral || self.peek().rawTokenKind == .floatingLiteral {
183+
argument = .availability(self.parseAvailabilitySpecList())
188184
} else {
189185
argument = .availability(self.parseExtendedAvailabilitySpecList())
190186
}
@@ -641,7 +637,7 @@ extension Parser {
641637
case (.availability, let handle)?:
642638
let ident = self.eat(handle)
643639
let (unexpectedBeforeColon, colon) = self.expect(.colon)
644-
let availability = self.parseAvailabilitySpecList(from: .available)
640+
let availability = self.parseAvailabilitySpecList()
645641
let (unexpectedBeforeSemi, semi) = self.expect(.semicolon)
646642
elements.append(
647643
.availabilityEntry(

Sources/SwiftParser/Availability.swift

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,32 +13,22 @@
1313
@_spi(RawSyntax) import SwiftSyntax
1414

1515
extension Parser {
16-
enum AvailabilitySpecSource {
17-
case available
18-
case unavailable
19-
case macro
20-
}
21-
2216
/// Parse a list of availability arguments.
2317
///
2418
/// Grammar
2519
/// =======
2620
///
2721
/// availability-arguments → availability-argument | availability-argument , availability-arguments
28-
mutating func parseAvailabilitySpecList(
29-
from source: AvailabilitySpecSource
30-
) -> RawAvailabilitySpecListSyntax {
22+
mutating func parseAvailabilitySpecList() -> RawAvailabilitySpecListSyntax {
3123
var elements = [RawAvailabilityArgumentSyntax]()
3224
do {
3325
var keepGoing: RawTokenSyntax? = nil
3426
var availablityArgumentProgress = LoopProgressCondition()
3527
repeat {
3628
let entry: RawAvailabilityArgumentSyntax.Entry
37-
switch source {
38-
case .available where self.at(.identifier),
39-
.unavailable where self.at(.identifier):
29+
if self.at(.identifier) {
4030
entry = .availabilityVersionRestriction(self.parseAvailabilityMacro())
41-
default:
31+
} else {
4232
entry = self.parseAvailabilitySpec()
4333
}
4434

Sources/SwiftParser/Statements.swift

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -357,27 +357,21 @@ extension Parser {
357357
@_spi(RawSyntax)
358358
public mutating func parsePoundAvailableConditionElement() -> RawConditionElementSyntax.Condition {
359359
assert(self.at(any: [.poundAvailableKeyword, .poundUnavailableKeyword]))
360-
let kind: AvailabilitySpecSource = self.at(.poundAvailableKeyword) ? .available : .unavailable
361360
let keyword = self.consumeAnyToken()
362361
let (unexpectedBeforeLParen, lparen) = self.expect(.leftParen)
363-
let spec = self.parseAvailabilitySpecList(from: kind)
362+
let spec = self.parseAvailabilitySpecList()
364363
let (unexpectedBeforeRParen, rparen) = self.expect(.rightParen)
365-
switch kind {
366-
case .available, .unavailable:
367-
return .availability(
368-
RawAvailabilityConditionSyntax(
369-
availabilityKeyword: keyword,
370-
unexpectedBeforeLParen,
371-
leftParen: lparen,
372-
availabilitySpec: spec,
373-
unexpectedBeforeRParen,
374-
rightParen: rparen,
375-
arena: self.arena
376-
)
364+
return .availability(
365+
RawAvailabilityConditionSyntax(
366+
availabilityKeyword: keyword,
367+
unexpectedBeforeLParen,
368+
leftParen: lparen,
369+
availabilitySpec: spec,
370+
unexpectedBeforeRParen,
371+
rightParen: rparen,
372+
arena: self.arena
377373
)
378-
case .macro:
379-
fatalError("Macros are not allowed in this position!")
380-
}
374+
)
381375
}
382376

383377
/// Parse a `#_hasSymbol` condition.

0 commit comments

Comments
 (0)