Skip to content

Commit 39bbc66

Browse files
committed
Make RawTokenSyntax RawSyntax SPI
I has been a bit incosistent that something named `Raw` was part of SwiftSyntax’s public API. Put it behind `RawSyntax` SPI for now. If we want to make it public again, we should rename it to something that doesn’t contain `Raw`
1 parent 0e21bb7 commit 39bbc66

File tree

10 files changed

+10
-11
lines changed

10 files changed

+10
-11
lines changed

CodeGeneration/Sources/generate-swiftsyntax/templates/swiftparser/TokenSpecStaticMembersFile.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import SyntaxSupport
1616
import Utils
1717

1818
let tokenSpecStaticMembersFile = SourceFileSyntax(leadingTrivia: copyrightHeader) {
19-
DeclSyntax("import SwiftSyntax")
19+
DeclSyntax("@_spi(RawSyntax) import SwiftSyntax")
2020

2121
try! ExtensionDeclSyntax("extension TokenSpec") {
2222
DeclSyntax("static var eof: TokenSpec { return TokenSpec(.eof) }")

CodeGeneration/Sources/generate-swiftsyntax/templates/swiftsyntax/TokenKindFile.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ let tokenKindFile = SourceFileSyntax(leadingTrivia: copyrightHeader) {
153153
// `RawTokenBaseKind` for equality. With the raw value, it compiles down to
154154
// a primitive integer compare, without, it calls into `__derived_enum_equals`.
155155
@frozen // FIXME: Not actually stable, works around a miscompile
156+
@_spi(RawSyntax)
156157
public enum RawTokenKind: UInt8, Equatable, Hashable
157158
"""
158159
) {

Sources/SwiftParser/Lookahead.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ extension Parser.Lookahead {
9090
self.currentToken = self.lexemes.advance()
9191
}
9292

93+
@_spi(RawSyntax)
9394
public mutating func consumeAnyToken(remapping: RawTokenKind) {
9495
self.consumeAnyToken()
9596
}

Sources/SwiftParser/TokenPrecedence.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
/// Describes how distinctive a token is for parser recovery. When expecting a
1616
/// token, tokens with a lower token precedence may be skipped and considered
1717
/// unexpected.
18-
public enum TokenPrecedence: Comparable {
18+
enum TokenPrecedence: Comparable {
1919
/// An unknown token. This is known garbage and should always be allowed to be skipped.
2020
case unknownToken
2121
/// Tokens that can be used similar to variable names or literals

Sources/SwiftParser/TokenSpec.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ struct TokenSpec {
137137
@inline(__always)
138138
static func ~= (kind: TokenSpec, token: TokenSyntax) -> Bool {
139139
return kind.matches(
140-
rawTokenKind: token.rawTokenKind,
140+
rawTokenKind: token.tokenView.rawKind,
141141
keyword: Keyword(token.tokenView.rawText),
142142
atStartOfLine: token.leadingTrivia.contains(where: { $0.isNewline })
143143
)

Sources/SwiftParser/generated/TokenSpecStaticMembers.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
//
1313
//===----------------------------------------------------------------------===//
1414

15-
import SwiftSyntax
15+
@_spi(RawSyntax) import SwiftSyntax
1616

1717
extension TokenSpec {
1818
static var eof: TokenSpec {

Sources/SwiftParserDiagnostics/MissingTokenError.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ extension ParseDiagnosticsGenerator {
2727
// this token.
2828

2929
let handled: Bool
30-
switch (missingToken.rawTokenKind, invalidToken.rawTokenKind) {
30+
switch (missingToken.tokenView.rawKind, invalidToken.tokenView.rawKind) {
3131
case (.identifier, _):
3232
handled = handleInvalidIdentifier(invalidToken: invalidToken, missingToken: missingToken, invalidTokenContainer: invalidTokenContainer)
3333
case (.multilineStringQuote, .multilineStringQuote):
@@ -103,7 +103,7 @@ extension ParseDiagnosticsGenerator {
103103
]
104104

105105
if let identifier = missingToken.nextToken(viewMode: .all),
106-
identifier.rawTokenKind == .identifier,
106+
identifier.tokenView.rawKind == .identifier,
107107
identifier.presence == .missing
108108
{
109109
// The extraneous whitespace caused a missing identifier, output a

Sources/SwiftSyntax/TokenSyntax.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,6 @@ public struct TokenSyntax: SyntaxProtocol, SyntaxHashable {
6868
return tokenKind.text
6969
}
7070

71-
public var rawTokenKind: RawTokenKind {
72-
return tokenView.rawKind
73-
}
74-
7571
/// Returns a new TokenSyntax with its kind replaced
7672
/// by the provided token kind.
7773
public func withKind(_ tokenKind: TokenKind) -> TokenSyntax {

Sources/SwiftSyntax/generated/TokenKind.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,7 @@ extension TokenKind: Equatable {
474474
// `RawTokenBaseKind` for equality. With the raw value, it compiles down to
475475
// a primitive integer compare, without, it calls into `__derived_enum_equals`.
476476
@frozen // FIXME: Not actually stable, works around a miscompile
477+
@_spi(RawSyntax)
477478
public enum RawTokenKind: UInt8, Equatable, Hashable {
478479
case eof
479480
case arrow

Sources/SwiftSyntaxBuilder/ConvenienceInitializers.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ extension StringLiteralExprSyntax {
283283
}
284284
}
285285

286-
let escapedContent = content.escapingForStringLiteral(usingDelimiter: closeDelimiter?.text ?? "", isMultiline: openQuote.rawTokenKind == .multilineStringQuote)
286+
let escapedContent = content.escapingForStringLiteral(usingDelimiter: closeDelimiter?.text ?? "", isMultiline: openQuote.tokenView.rawKind == .multilineStringQuote)
287287
let contentToken = TokenSyntax.stringSegment(escapedContent)
288288
let segment = StringSegmentSyntax(content: contentToken)
289289
let segments = StringLiteralSegmentsSyntax([.stringSegment(segment)])

0 commit comments

Comments
 (0)