Skip to content

Commit 3f9f008

Browse files
committed
Remove AvailabilitySpecSource
It’s no longer needed
1 parent b832547 commit 3f9f008

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
@@ -356,27 +356,21 @@ extension Parser {
356356
@_spi(RawSyntax)
357357
public mutating func parsePoundAvailableConditionElement() -> RawConditionElementSyntax.Condition {
358358
assert(self.at(any: [.poundAvailableKeyword, .poundUnavailableKeyword]))
359-
let kind: AvailabilitySpecSource = self.at(.poundAvailableKeyword) ? .available : .unavailable
360359
let keyword = self.consumeAnyToken()
361360
let (unexpectedBeforeLParen, lparen) = self.expect(.leftParen)
362-
let spec = self.parseAvailabilitySpecList(from: kind)
361+
let spec = self.parseAvailabilitySpecList()
363362
let (unexpectedBeforeRParen, rparen) = self.expect(.rightParen)
364-
switch kind {
365-
case .available, .unavailable:
366-
return .availability(
367-
RawAvailabilityConditionSyntax(
368-
availabilityKeyword: keyword,
369-
unexpectedBeforeLParen,
370-
leftParen: lparen,
371-
availabilitySpec: spec,
372-
unexpectedBeforeRParen,
373-
rightParen: rparen,
374-
arena: self.arena
375-
)
363+
return .availability(
364+
RawAvailabilityConditionSyntax(
365+
availabilityKeyword: keyword,
366+
unexpectedBeforeLParen,
367+
leftParen: lparen,
368+
availabilitySpec: spec,
369+
unexpectedBeforeRParen,
370+
rightParen: rparen,
371+
arena: self.arena
376372
)
377-
case .macro:
378-
fatalError("Macros are not allowed in this position!")
379-
}
373+
)
380374
}
381375

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

0 commit comments

Comments
 (0)