Skip to content

Commit e99a573

Browse files
authored
Merge pull request #1985 from ahoppen/ahoppen/initializer-optional-mark
Only allow `postfixQuestionMark` as the question mark after `init`
2 parents 1248cf7 + 73bb69f commit e99a573

File tree

5 files changed

+3
-11
lines changed

5 files changed

+3
-11
lines changed

CodeGeneration/Sources/SyntaxSupport/DeclNodes.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1267,7 +1267,6 @@ public let DECL_NODES: [Node] = [
12671267
name: "optionalMark",
12681268
kind: .token(choices: [
12691269
.token(.postfixQuestionMark),
1270-
.token(.infixQuestionMark),
12711270
.token(.exclamationMark),
12721271
]),
12731272
documentation: "If the initializer is failable, a question mark to indicate that.",

Sources/SwiftParser/Declarations.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -922,7 +922,7 @@ extension Parser {
922922

923923
// Parse the '!' or '?' for a failable initializer.
924924
let failable: RawTokenSyntax?
925-
if let parsedFailable = self.consume(if: .exclamationMark, .postfixQuestionMark, .infixQuestionMark) {
925+
if let parsedFailable = self.consume(if: .exclamationMark, .postfixQuestionMark, TokenSpec(.infixQuestionMark, remapping: .postfixQuestionMark)) {
926926
failable = parsedFailable
927927
} else if let parsedFailable = self.consumeIfContextualPunctuator("!", remapping: .exclamationMark) {
928928
failable = parsedFailable

Sources/SwiftParser/generated/Parser+TokenSpecSet.swift

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1807,15 +1807,12 @@ extension InitializerDeclSyntax {
18071807
@_spi(Diagnostics)
18081808
public enum OptionalMarkOptions: TokenSpecSet {
18091809
case postfixQuestionMark
1810-
case infixQuestionMark
18111810
case exclamationMark
18121811

18131812
init?(lexeme: Lexer.Lexeme) {
18141813
switch PrepareForKeywordMatch(lexeme) {
18151814
case TokenSpec(.postfixQuestionMark):
18161815
self = .postfixQuestionMark
1817-
case TokenSpec(.infixQuestionMark):
1818-
self = .infixQuestionMark
18191816
case TokenSpec(.exclamationMark):
18201817
self = .exclamationMark
18211818
default:
@@ -1827,8 +1824,6 @@ extension InitializerDeclSyntax {
18271824
switch self {
18281825
case .postfixQuestionMark:
18291826
return .postfixQuestionMark
1830-
case .infixQuestionMark:
1831-
return .infixQuestionMark
18321827
case .exclamationMark:
18331828
return .exclamationMark
18341829
}
@@ -1842,8 +1837,6 @@ extension InitializerDeclSyntax {
18421837
switch self {
18431838
case .postfixQuestionMark:
18441839
return .postfixQuestionMarkToken()
1845-
case .infixQuestionMark:
1846-
return .infixQuestionMarkToken()
18471840
case .exclamationMark:
18481841
return .exclamationMarkToken()
18491842
}

Sources/SwiftSyntax/generated/raw/RawSyntaxValidation.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1553,7 +1553,7 @@ func validateLayout(layout: RawSyntaxBuffer, as kind: SyntaxKind) {
15531553
assertNoError(kind, 4, verify(layout[4], as: RawUnexpectedNodesSyntax?.self))
15541554
assertNoError(kind, 5, verify(layout[5], as: RawTokenSyntax.self, tokenChoices: [.keyword("init")]))
15551555
assertNoError(kind, 6, verify(layout[6], as: RawUnexpectedNodesSyntax?.self))
1556-
assertNoError(kind, 7, verify(layout[7], as: RawTokenSyntax?.self, tokenChoices: [.tokenKind(.postfixQuestionMark), .tokenKind(.infixQuestionMark), .tokenKind(.exclamationMark)]))
1556+
assertNoError(kind, 7, verify(layout[7], as: RawTokenSyntax?.self, tokenChoices: [.tokenKind(.postfixQuestionMark), .tokenKind(.exclamationMark)]))
15571557
assertNoError(kind, 8, verify(layout[8], as: RawUnexpectedNodesSyntax?.self))
15581558
assertNoError(kind, 9, verify(layout[9], as: RawGenericParameterClauseSyntax?.self))
15591559
assertNoError(kind, 10, verify(layout[10], as: RawUnexpectedNodesSyntax?.self))

Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesGHI.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3787,7 +3787,7 @@ public struct InitializerClauseSyntax: SyntaxProtocol, SyntaxHashable {
37873787
/// - `attributes`: ``AttributeListSyntax``
37883788
/// - `modifiers`: ``DeclModifierListSyntax``
37893789
/// - `initKeyword`: `'init'`
3790-
/// - `optionalMark`: (`'?'` | `'?'` | `'!'`)?
3790+
/// - `optionalMark`: (`'?'` | `'!'`)?
37913791
/// - `genericParameterClause`: ``GenericParameterClauseSyntax``?
37923792
/// - `signature`: ``FunctionSignatureSyntax``
37933793
/// - `genericWhereClause`: ``GenericWhereClauseSyntax``?

0 commit comments

Comments
 (0)