@@ -356,7 +356,7 @@ extension Parser {
356356 return parseUnresolvedAsExpr ( handle: handle)
357357
358358 case ( . async , _) ? :
359- if self . peek ( ) . rawTokenKind == . arrow || self . peek ( ) . rawTokenKind == . keyword ( . throws ) {
359+ if self . peek ( ) . rawTokenKind == . arrow || TokenSpec ( . throws ) ~= self . peek ( ) {
360360 fallthrough
361361 } else {
362362 return nil
@@ -494,20 +494,20 @@ extension Parser {
494494 // First check to see if we have the start of a regex literal `/.../`.
495495 // tryLexRegexLiteral(/*forUnappliedOperator*/ false)
496496
497- switch self . currentToken. rawTokenKind {
498- case . keyword ( . repeat ) :
497+ switch self . currentToken {
498+ case TokenSpec ( . repeat ) :
499499 // 'repeat' is the start of a pack expansion expression.
500500 return RawExprSyntax ( parsePackExpansionExpr ( flavor, pattern: pattern) )
501501
502502 // Try parse an 'if' or 'switch' as an expression. Note we do this here in
503503 // parseUnaryExpression as we don't allow postfix syntax to hang off such
504504 // expressions to avoid ambiguities such as postfix '.member', which can
505505 // currently be parsed as a static dot member for a result builder.
506- case . keyword ( . switch) :
506+ case TokenSpec ( . switch) :
507507 return RawExprSyntax (
508508 parseSwitchExpression ( switchHandle: . constant( . keyword( . switch) ) )
509509 )
510- case . keyword ( . if) :
510+ case TokenSpec ( . if) :
511511 return RawExprSyntax (
512512 parseIfExpression ( ifHandle: . constant( . keyword( . if) ) )
513513 )
@@ -2063,7 +2063,7 @@ extension Parser.Lookahead {
20632063 }
20642064
20652065 // If this is the start of a switch body, this isn't a trailing closure.
2066- if self . peek ( ) . rawTokenKind == . keyword ( . case ) {
2066+ if TokenSpec ( . case ) ~= self . peek ( ) {
20672067 return false
20682068 }
20692069
@@ -2104,23 +2104,23 @@ extension Parser.Lookahead {
21042104 return false
21052105 }
21062106
2107- switch backtrack. currentToken. rawTokenKind {
2108- case . leftBrace,
2109- . keyword ( . where) ,
2110- . comma:
2107+ switch backtrack. currentToken {
2108+ case TokenSpec ( . leftBrace) ,
2109+ TokenSpec ( . where) ,
2110+ TokenSpec ( . comma) :
21112111 return true
2112- case . leftSquareBracket,
2113- . leftParen,
2114- . period,
2115- . keyword ( . is) ,
2116- . keyword ( . as) ,
2117- . postfixQuestionMark,
2118- . infixQuestionMark,
2119- . exclamationMark,
2120- . colon,
2121- . equal,
2122- . postfixOperator,
2123- . binaryOperator:
2112+ case TokenSpec ( . leftSquareBracket) ,
2113+ TokenSpec ( . leftParen) ,
2114+ TokenSpec ( . period) ,
2115+ TokenSpec ( . is) ,
2116+ TokenSpec ( . as) ,
2117+ TokenSpec ( . postfixQuestionMark) ,
2118+ TokenSpec ( . infixQuestionMark) ,
2119+ TokenSpec ( . exclamationMark) ,
2120+ TokenSpec ( . colon) ,
2121+ TokenSpec ( . equal) ,
2122+ TokenSpec ( . postfixOperator) ,
2123+ TokenSpec ( . binaryOperator) :
21242124 return !backtrack. currentToken. isAtStartOfLine
21252125 default :
21262126 return false
@@ -2225,7 +2225,7 @@ extension Parser {
22252225 public mutating func parseSwitchCases( allowStandaloneStmtRecovery: Bool ) -> RawSwitchCaseListSyntax {
22262226 var elements = [ RawSwitchCaseListSyntax . Element] ( )
22272227 var elementsProgress = LoopProgressCondition ( )
2228- while !self . at ( any : [ . eof, . rightBrace, . poundEndifKeyword, . poundElseifKeyword, . poundElseKeyword] )
2228+ while !self . at ( . eof, . rightBrace) && ! self . at ( . poundEndifKeyword, . poundElseifKeyword, . poundElseKeyword)
22292229 && elementsProgress. evaluate ( currentToken)
22302230 {
22312231 if self . withLookahead ( { $0. isAtStartOfSwitchCase ( allowRecovery: false ) } ) {
@@ -2294,7 +2294,7 @@ extension Parser {
22942294 mutating func parseSwitchCaseBody( ) -> RawCodeBlockItemListSyntax {
22952295 var items = [ RawCodeBlockItemSyntax] ( )
22962296 var loopProgress = LoopProgressCondition ( )
2297- while !self . at ( any : [ . rightBrace, . poundEndifKeyword, . poundElseifKeyword, . poundElseKeyword] )
2297+ while !self . at ( . rightBrace) && ! self . at ( . poundEndifKeyword, . poundElseifKeyword, . poundElseKeyword)
22982298 && !self . withLookahead ( { $0. isStartOfConditionalSwitchCases ( ) } ) ,
22992299 let newItem = self . parseCodeBlockItem ( ) ,
23002300 loopProgress. evaluate ( currentToken)
@@ -2559,14 +2559,7 @@ extension Parser.Lookahead {
25592559 return true
25602560 }
25612561
2562- if self . peek ( ) . rawTokenKind != . identifier,
2563- self . peek ( ) . rawTokenKind != . keyword( . Self) ,
2564- self . peek ( ) . rawTokenKind != . keyword( . self ) ,
2565- !self . peek ( ) . rawTokenKind. isLexerClassifiedKeyword
2566- {
2567- return false
2568- }
2569- return true
2562+ return self . peek ( ) . isLexerClassifiedKeyword || TokenSpec ( . identifier) ~= self . peek ( )
25702563 }
25712564
25722565 fileprivate func isNextTokenCallPattern( ) -> Bool {
0 commit comments