@@ -257,8 +257,8 @@ extension Parser {
257
257
return RawDeclSyntax ( self . parseMacroDeclaration ( attrs: attrs, introducerHandle: handle) )
258
258
case nil :
259
259
if inMemberDeclList {
260
- let isProbablyVarDecl = self . at ( any : [ . identifier, . wildcard] ) && self . peek ( ) . rawTokenKind. is ( any : [ . colon, . equal, . comma] )
261
- let isProbablyTupleDecl = self . at ( . leftParen) && self . peek ( ) . rawTokenKind. is ( any : [ . identifier, . wildcard] )
260
+ let isProbablyVarDecl = self . at ( . identifier, . wildcard) && self . peek ( ) . rawTokenKind. is ( . colon, . equal, . comma)
261
+ let isProbablyTupleDecl = self . at ( . leftParen) && self . peek ( ) . rawTokenKind. is ( . identifier, . wildcard)
262
262
263
263
if isProbablyVarDecl || isProbablyTupleDecl {
264
264
return RawDeclSyntax ( self . parseLetOrVarDeclaration ( attrs, . missing( . keyword( . var) ) ) )
@@ -274,7 +274,7 @@ extension Parser {
274
274
)
275
275
}
276
276
277
- let isProbablyFuncDecl = self . at ( any : [ . identifier, . wildcard] ) || self . at ( anyIn: Operator . self) != nil
277
+ let isProbablyFuncDecl = self . at ( . identifier, . wildcard) || self . at ( anyIn: Operator . self) != nil
278
278
279
279
if isProbablyFuncDecl {
280
280
return RawDeclSyntax ( self . parseFuncDeclaration ( attrs, . missing( . keyword( . func) ) ) )
@@ -321,7 +321,45 @@ extension Parser {
321
321
322
322
@_spi ( RawSyntax)
323
323
public mutating func parseImportKind( ) -> RawTokenSyntax ? {
324
- return self . consume ( ifAny: [ . keyword( . typealias) , . keyword( . struct) , . keyword( . class) , . keyword( . enum) , . keyword( . protocol) , . keyword( . var) , . keyword( . let) , . keyword( . func) ] )
324
+ enum ImportKind : RawTokenKindSubset {
325
+ case `typealias`
326
+ case `struct`
327
+ case `class`
328
+ case `enum`
329
+ case `protocol`
330
+ case `var`
331
+ case `let`
332
+ case `func`
333
+
334
+ var rawTokenKind : RawTokenKind {
335
+ switch self {
336
+ case . typealias: return . keyword( . typealias)
337
+ case . struct: return . keyword( . struct)
338
+ case . class: return . keyword( . class)
339
+ case . enum: return . keyword( . enum)
340
+ case . protocol: return . keyword( . protocol)
341
+ case . var: return . keyword( . var)
342
+ case . let: return . keyword( . let)
343
+ case . func: return . keyword( . func)
344
+ }
345
+ }
346
+
347
+ init ? ( lexeme: Lexer . Lexeme ) {
348
+ switch lexeme {
349
+ case RawTokenKindMatch ( . typealias) : self = . typealias
350
+ case RawTokenKindMatch ( . struct) : self = . struct
351
+ case RawTokenKindMatch ( . class) : self = . class
352
+ case RawTokenKindMatch ( . enum) : self = . enum
353
+ case RawTokenKindMatch ( . protocol) : self = . protocol
354
+ case RawTokenKindMatch ( . var) : self = . var
355
+ case RawTokenKindMatch ( . let) : self = . let
356
+ case RawTokenKindMatch ( . func) : self = . func
357
+ default : return nil
358
+ }
359
+ }
360
+ }
361
+
362
+ return self . consume ( ifAnyIn: ImportKind . self)
325
363
}
326
364
327
365
@_spi ( RawSyntax)
@@ -442,7 +480,7 @@ extension Parser {
442
480
let unexpectedBeforeInherited : RawUnexpectedNodesSyntax ?
443
481
let inherited : RawTypeSyntax ?
444
482
if colon != nil {
445
- if self . at ( any : [ . identifier, . keyword( . protocol) , . keyword( . Any) ] ) {
483
+ if self . at ( . identifier, . keyword( . protocol) , . keyword( . Any) ) {
446
484
unexpectedBeforeInherited = nil
447
485
inherited = self . parseType ( )
448
486
} else if let classKeyword = self . consume ( if: . keyword( . class) ) {
@@ -769,7 +807,7 @@ extension Parser {
769
807
let ( unexpectedBeforeLBrace, lbrace) = self . expect ( . leftBrace)
770
808
do {
771
809
var loopProgress = LoopProgressCondition ( )
772
- while !self . at ( any : [ . eof, . rightBrace] ) && loopProgress. evaluate ( currentToken) {
810
+ while !self . at ( . eof, . rightBrace) && loopProgress. evaluate ( currentToken) {
773
811
let newItemAtStartOfLine = self . currentToken. isAtStartOfLine
774
812
guard let newElement = self . parseMemberDeclListItem ( ) else {
775
813
break
@@ -979,7 +1017,7 @@ extension Parser {
979
1017
980
1018
// Parse the '!' or '?' for a failable initializer.
981
1019
let failable : RawTokenSyntax ?
982
- if let parsedFailable = self . consume ( ifAny : [ . exclamationMark, . postfixQuestionMark, . infixQuestionMark] ) {
1020
+ if let parsedFailable = self . consume ( if : . exclamationMark, . postfixQuestionMark, . infixQuestionMark) {
983
1021
failable = parsedFailable
984
1022
} else if let parsedFailable = self . consumeIfContextualPunctuator ( " ! " , remapping: . exclamationMark) {
985
1023
failable = parsedFailable
@@ -1195,7 +1233,7 @@ extension Parser {
1195
1233
if !shouldSkipParameterParsing {
1196
1234
var keepGoing = true
1197
1235
var loopProgress = LoopProgressCondition ( )
1198
- while !self . at ( any : [ . eof, . rightParen] )
1236
+ while !self . at ( . eof, . rightParen)
1199
1237
&& keepGoing
1200
1238
&& loopProgress. evaluate ( currentToken)
1201
1239
{
@@ -1277,7 +1315,7 @@ extension Parser {
1277
1315
let ( unexpectedBeforeFuncKeyword, funcKeyword) = self . eat ( handle)
1278
1316
let unexpectedBeforeIdentifier : RawUnexpectedNodesSyntax ?
1279
1317
let identifier : RawTokenSyntax
1280
- if self . at ( anyIn: Operator . self) != nil || self . at ( any : [ . exclamationMark, . prefixAmpersand] ) || self . atRegexLiteralThatCouldBeAnOperator ( ) {
1318
+ if self . at ( anyIn: Operator . self) != nil || self . at ( . exclamationMark, . prefixAmpersand) || self . atRegexLiteralThatCouldBeAnOperator ( ) {
1281
1319
var name = self . currentToken. tokenText
1282
1320
if name. count > 1 && name. hasSuffix ( " < " ) && self . peek ( ) . rawTokenKind == . identifier {
1283
1321
name = SyntaxText ( rebasing: name. dropLast ( ) )
@@ -1552,7 +1590,7 @@ extension Parser {
1552
1590
// Check there is an identifier before consuming
1553
1591
var look = self . lookahead ( )
1554
1592
let _ = look. consumeAttributeList ( )
1555
- let hasModifier = look. consume ( ifAny : [ . keyword( . mutating) , . keyword( . nonmutating) , . keyword( . __consuming) ] ) != nil
1593
+ let hasModifier = look. consume ( if : . keyword( . mutating) , . keyword( . nonmutating) , . keyword( . __consuming) ) != nil
1556
1594
guard let ( kind, handle) = look. at ( anyIn: AccessorKind . self) ?? forcedKind else {
1557
1595
return nil
1558
1596
}
@@ -1563,7 +1601,7 @@ extension Parser {
1563
1601
// get and set.
1564
1602
let modifier : RawDeclModifierSyntax ?
1565
1603
if hasModifier {
1566
- let ( unexpectedBeforeName, name) = self . expectAny ( [ . keyword( . mutating) , . keyword( . nonmutating) , . keyword( . __consuming) ] , default: . keyword( . mutating) )
1604
+ let ( unexpectedBeforeName, name) = self . expect ( . keyword( . mutating) , . keyword( . nonmutating) , . keyword( . __consuming) , default: . keyword( . mutating) )
1567
1605
modifier = RawDeclModifierSyntax (
1568
1606
unexpectedBeforeName,
1569
1607
name: name,
@@ -1667,7 +1705,7 @@ extension Parser {
1667
1705
var elements = [ RawAccessorDeclSyntax] ( )
1668
1706
do {
1669
1707
var loopProgress = LoopProgressCondition ( )
1670
- while !self . at ( any : [ . eof, . rightBrace] ) && loopProgress. evaluate ( currentToken) {
1708
+ while !self . at ( . eof, . rightBrace) && loopProgress. evaluate ( currentToken) {
1671
1709
guard let introducer = self . parseAccessorIntroducer ( ) else {
1672
1710
// There can only be an implicit getter if no other accessors were
1673
1711
// seen before this one.
@@ -1812,7 +1850,7 @@ extension Parser {
1812
1850
case ( _, let handle) ? :
1813
1851
( unexpectedBeforeName, name) = self . eat ( handle)
1814
1852
default :
1815
- if let identifier = self . consume ( ifAny : [ . identifier, . dollarIdentifier] , allowTokenAtStartOfLine: false ) {
1853
+ if let identifier = self . consume ( if : . identifier, . dollarIdentifier, allowTokenAtStartOfLine: false ) {
1816
1854
// Recover if the developer tried to use an identifier as the operator name
1817
1855
unexpectedBeforeName = RawUnexpectedNodesSyntax ( [ identifier] , arena: self . arena)
1818
1856
} else {
@@ -1827,7 +1865,7 @@ extension Parser {
1827
1865
var loopProgress = LoopProgressCondition ( )
1828
1866
while ( identifiersAfterOperatorName. last ?? name) . trailingTriviaByteLength == 0 ,
1829
1867
self . currentToken. leadingTriviaByteLength == 0 ,
1830
- !self . at ( any : [ . colon, . leftBrace, . eof] ) ,
1868
+ !self . at ( . colon, . leftBrace, . eof) ,
1831
1869
loopProgress. evaluate ( self . currentToken)
1832
1870
{
1833
1871
identifiersAfterOperatorName. append ( consumeAnyToken ( ) )
@@ -1977,12 +2015,12 @@ extension Parser {
1977
2015
var elements = [ RawPrecedenceGroupAttributeListSyntax . Element] ( )
1978
2016
do {
1979
2017
var attributesProgress = LoopProgressCondition ( )
1980
- LOOP: while !self . at ( any : [ . eof, . rightBrace] ) && attributesProgress. evaluate ( currentToken) {
2018
+ LOOP: while !self . at ( . eof, . rightBrace) && attributesProgress. evaluate ( currentToken) {
1981
2019
switch self . at ( anyIn: LabelText . self) {
1982
2020
case ( . associativity, let handle) ? :
1983
2021
let associativity = self . eat ( handle)
1984
2022
let ( unexpectedBeforeColon, colon) = self . expect ( . colon)
1985
- var ( unexpectedBeforeValue, value) = self . expectAny ( [ . keyword( . left) , . keyword( . right) , . keyword( . none) ] , default: . keyword( . none) )
2023
+ var ( unexpectedBeforeValue, value) = self . expect ( . keyword( . left) , . keyword( . right) , . keyword( . none) , default: . keyword( . none) )
1986
2024
if value. isMissing, let identifier = self . consume ( if: . identifier) {
1987
2025
unexpectedBeforeValue = RawUnexpectedNodesSyntax ( combining: unexpectedBeforeValue, identifier, arena: self . arena)
1988
2026
}
@@ -2001,7 +2039,7 @@ extension Parser {
2001
2039
case ( . assignment, let handle) ? :
2002
2040
let assignmentKeyword = self . eat ( handle)
2003
2041
let ( unexpectedBeforeColon, colon) = self . expect ( . colon)
2004
- let ( unexpectedBeforeFlag, flag) = self . expectAny ( [ . keyword( . true ) , . keyword( . false ) ] , default: . keyword( . true ) )
2042
+ let ( unexpectedBeforeFlag, flag) = self . expect ( . keyword( . true ) , . keyword( . false ) , default: . keyword( . true ) )
2005
2043
let unexpectedAfterFlag : RawUnexpectedNodesSyntax ?
2006
2044
if flag. isMissing, let unexpectedIdentifier = self . consume ( if: . identifier, allowTokenAtStartOfLine: false ) {
2007
2045
unexpectedAfterFlag = RawUnexpectedNodesSyntax ( [ unexpectedIdentifier] , arena: self . arena)
0 commit comments