From fd0b6917da5d18ca609717addd5c495a33964ebc Mon Sep 17 00:00:00 2001 From: Alex Hoppen Date: Thu, 5 Sep 2024 13:50:51 -0700 Subject: [PATCH] Enable the `sendingArgsAndResults` experimental feature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SE-0430 was accepted for Swift 6.0 but the experimental feature was not enabled with the proposal’s acceptance. --- .../SyntaxSupport/ExperimentalFeatures.swift | 3 --- .../Sources/SyntaxSupport/KeywordSpec.swift | 5 +---- Sources/SwiftParser/Patterns.swift | 2 +- .../generated/ExperimentalFeatures.swift | 3 --- .../generated/Parser+TokenSpecSet.swift | 10 ++-------- Sources/SwiftSyntax/generated/Keyword.swift | 3 --- Tests/SwiftParserTest/DeclarationTests.swift | 15 +++------------ Tests/SwiftParserTest/SendingTest.swift | 6 ++---- 8 files changed, 9 insertions(+), 38 deletions(-) diff --git a/CodeGeneration/Sources/SyntaxSupport/ExperimentalFeatures.swift b/CodeGeneration/Sources/SyntaxSupport/ExperimentalFeatures.swift index 940b296abb1..22d4ee6d59c 100644 --- a/CodeGeneration/Sources/SyntaxSupport/ExperimentalFeatures.swift +++ b/CodeGeneration/Sources/SyntaxSupport/ExperimentalFeatures.swift @@ -18,7 +18,6 @@ public enum ExperimentalFeature: String, CaseIterable { case doExpressions case nonescapableTypes case trailingComma - case sendingArgsAndResults /// The name of the feature, which is used in the doc comment. public var featureName: String { @@ -33,8 +32,6 @@ public enum ExperimentalFeature: String, CaseIterable { return "NonEscableTypes" case .trailingComma: return "trailing comma" - case .sendingArgsAndResults: - return "SendingArgsAndResults" } } diff --git a/CodeGeneration/Sources/SyntaxSupport/KeywordSpec.swift b/CodeGeneration/Sources/SyntaxSupport/KeywordSpec.swift index 686d4a8cd7e..8cfbc5d93cf 100644 --- a/CodeGeneration/Sources/SyntaxSupport/KeywordSpec.swift +++ b/CodeGeneration/Sources/SyntaxSupport/KeywordSpec.swift @@ -687,10 +687,7 @@ public enum Keyword: CaseIterable { case .throws: return KeywordSpec("throws", isLexerClassified: true) case .sending: - return KeywordSpec( - "sending", - experimentalFeature: .sendingArgsAndResults - ) + return KeywordSpec("sending") case .transpose: return KeywordSpec("transpose") case .true: diff --git a/Sources/SwiftParser/Patterns.swift b/Sources/SwiftParser/Patterns.swift index b02978e3d48..2519a222ccc 100644 --- a/Sources/SwiftParser/Patterns.swift +++ b/Sources/SwiftParser/Patterns.swift @@ -377,7 +377,7 @@ extension Parser.Lookahead { && !self.at(.keyword(._const)) && !self.at(.keyword(.borrowing)) && !self.at(.keyword(.consuming)) - && !(experimentalFeatures.contains(.sendingArgsAndResults) && self.at(.keyword(.sending))) + && !self.at(.keyword(.sending)) { return true } diff --git a/Sources/SwiftParser/generated/ExperimentalFeatures.swift b/Sources/SwiftParser/generated/ExperimentalFeatures.swift index b020fe31f54..194c07298d4 100644 --- a/Sources/SwiftParser/generated/ExperimentalFeatures.swift +++ b/Sources/SwiftParser/generated/ExperimentalFeatures.swift @@ -38,7 +38,4 @@ extension Parser.ExperimentalFeatures { /// Whether to enable the parsing of trailing comma. public static let trailingComma = Self (rawValue: 1 << 4) - - /// Whether to enable the parsing of SendingArgsAndResults. - public static let sendingArgsAndResults = Self (rawValue: 1 << 5) } diff --git a/Sources/SwiftParser/generated/Parser+TokenSpecSet.swift b/Sources/SwiftParser/generated/Parser+TokenSpecSet.swift index 1f83e88bf73..736284c4f70 100644 --- a/Sources/SwiftParser/generated/Parser+TokenSpecSet.swift +++ b/Sources/SwiftParser/generated/Parser+TokenSpecSet.swift @@ -858,9 +858,6 @@ extension DeclModifierSyntax { case `static` case unowned case weak - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif case sending init?(lexeme: Lexer.Lexeme, experimentalFeatures: Parser.ExperimentalFeatures) { @@ -935,7 +932,7 @@ extension DeclModifierSyntax { self = .unowned case TokenSpec(.weak): self = .weak - case TokenSpec(.sending) where experimentalFeatures.contains(.sendingArgsAndResults): + case TokenSpec(.sending): self = .sending default: return nil @@ -3379,9 +3376,6 @@ extension SimpleTypeSpecifierSyntax { case _const case borrowing case consuming - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif case sending init?(lexeme: Lexer.Lexeme, experimentalFeatures: Parser.ExperimentalFeatures) { @@ -3400,7 +3394,7 @@ extension SimpleTypeSpecifierSyntax { self = .borrowing case TokenSpec(.consuming): self = .consuming - case TokenSpec(.sending) where experimentalFeatures.contains(.sendingArgsAndResults): + case TokenSpec(.sending): self = .sending default: return nil diff --git a/Sources/SwiftSyntax/generated/Keyword.swift b/Sources/SwiftSyntax/generated/Keyword.swift index b972a875aea..da8d677f22a 100644 --- a/Sources/SwiftSyntax/generated/Keyword.swift +++ b/Sources/SwiftSyntax/generated/Keyword.swift @@ -203,9 +203,6 @@ public enum Keyword: UInt8, Hashable, Sendable { #endif case scoped case `self` - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif case sending case `Self` case Sendable diff --git a/Tests/SwiftParserTest/DeclarationTests.swift b/Tests/SwiftParserTest/DeclarationTests.swift index 4d8c453768f..f7354c5febd 100644 --- a/Tests/SwiftParserTest/DeclarationTests.swift +++ b/Tests/SwiftParserTest/DeclarationTests.swift @@ -3270,18 +3270,9 @@ final class DeclarationTests: ParserTestCase { } func testSendingTypeSpecifier() { - assertParse( - "func testVarDeclTupleElt() -> (sending String, String) {}", - experimentalFeatures: .sendingArgsAndResults - ) - assertParse( - "func testVarDeclTuple2(_ x: (sending String)) {}", - experimentalFeatures: .sendingArgsAndResults - ) - assertParse( - "func testVarDeclTuple2(_ x: (sending String, String)) {}", - experimentalFeatures: .sendingArgsAndResults - ) + assertParse("func testVarDeclTupleElt() -> (sending String, String) {}") + assertParse("func testVarDeclTuple2(_ x: (sending String)) {}") + assertParse("func testVarDeclTuple2(_ x: (sending String, String)) {}") } func testMisplacedAttributeInVarDeclWithMultipleBindings() { diff --git a/Tests/SwiftParserTest/SendingTest.swift b/Tests/SwiftParserTest/SendingTest.swift index 4e89c483606..d2d84257f2b 100644 --- a/Tests/SwiftParserTest/SendingTest.swift +++ b/Tests/SwiftParserTest/SendingTest.swift @@ -19,8 +19,7 @@ final class SendingTests: ParserTestCase { """ class Klass {} func transferMain(_ x: sending Klass) -> () - """, - experimentalFeatures: .sendingArgsAndResults + """ ) } @@ -29,8 +28,7 @@ final class SendingTests: ParserTestCase { """ class Klass {} func transferMain(_ y: Klass, _ x: sending Klass, _ z: Klass) -> () - """, - experimentalFeatures: .sendingArgsAndResults + """ ) } }