From fd2b93517b04c3a671211d41565962481e208211 Mon Sep 17 00:00:00 2001 From: Meghana Gupta Date: Tue, 15 Oct 2024 19:57:38 -0700 Subject: [PATCH] Update code generation for type specifiers --- .../generated/Parser+TokenSpecSet.swift | 61 --- .../generated/ChildNameForDiagnostics.swift | 2 - .../generated/ChildNameForKeyPath.swift | 32 -- .../generated/SyntaxAnyVisitor.swift | 42 -- .../generated/SyntaxBaseNodes.swift | 3 - .../generated/SyntaxCollections.swift | 79 +--- .../SwiftSyntax/generated/SyntaxEnum.swift | 18 - .../SwiftSyntax/generated/SyntaxKind.swift | 20 - .../generated/SyntaxRewriter.swift | 48 --- .../SwiftSyntax/generated/SyntaxTraits.swift | 2 - .../SwiftSyntax/generated/SyntaxVisitor.swift | 72 ---- .../generated/raw/RawSyntaxNodesJKLMN.swift | 235 ----------- .../generated/raw/RawSyntaxNodesTUVWXYZ.swift | 16 +- .../generated/raw/RawSyntaxValidation.swift | 28 +- .../generated/syntaxNodes/SyntaxNodesAB.swift | 2 +- .../syntaxNodes/SyntaxNodesJKLMN.swift | 380 ------------------ .../generated/ResultBuilders.swift | 27 -- 17 files changed, 7 insertions(+), 1060 deletions(-) diff --git a/Sources/SwiftParser/generated/Parser+TokenSpecSet.swift b/Sources/SwiftParser/generated/Parser+TokenSpecSet.swift index 0ddbdbd54c0..026ff16340c 100644 --- a/Sources/SwiftParser/generated/Parser+TokenSpecSet.swift +++ b/Sources/SwiftParser/generated/Parser+TokenSpecSet.swift @@ -2679,67 +2679,6 @@ extension LayoutRequirementSyntax { } } -extension LifetimeSpecifierArgumentSyntax { - @_spi(Diagnostics) - public enum ParameterOptions: TokenSpecSet { - case identifier - case `self` - case integerLiteral - - init?(lexeme: Lexer.Lexeme, experimentalFeatures: Parser.ExperimentalFeatures) { - switch PrepareForKeywordMatch(lexeme) { - case TokenSpec(.identifier): - self = .identifier - case TokenSpec(.self): - self = .self - case TokenSpec(.integerLiteral): - self = .integerLiteral - default: - return nil - } - } - - public init?(token: TokenSyntax) { - switch token { - case TokenSpec(.identifier): - self = .identifier - case TokenSpec(.self): - self = .self - case TokenSpec(.integerLiteral): - self = .integerLiteral - default: - return nil - } - } - - var spec: TokenSpec { - switch self { - case .identifier: - return .identifier - case .self: - return .keyword(.self) - case .integerLiteral: - return .integerLiteral - } - } - - /// Returns a token that satisfies the `TokenSpec` of this case. - /// - /// If the token kind of this spec has variable text, e.g. for an identifier, this returns a token with empty text. - @_spi(Diagnostics) - public var tokenSyntax: TokenSyntax { - switch self { - case .identifier: - return .identifier("") - case .self: - return .keyword(.self) - case .integerLiteral: - return .integerLiteral("") - } - } - } -} - extension MemberTypeSyntax { @_spi(Diagnostics) public enum NameOptions: TokenSpecSet { diff --git a/Sources/SwiftParserDiagnostics/generated/ChildNameForDiagnostics.swift b/Sources/SwiftParserDiagnostics/generated/ChildNameForDiagnostics.swift index 1d7488f2861..f2d9e8e9687 100644 --- a/Sources/SwiftParserDiagnostics/generated/ChildNameForDiagnostics.swift +++ b/Sources/SwiftParserDiagnostics/generated/ChildNameForDiagnostics.swift @@ -224,8 +224,6 @@ private func childNameForDiagnostics(_ keyPath: AnyKeyPath) -> String? { return "size" case \LayoutRequirementSyntax.alignment: return "alignment" - case \LifetimeSpecifierArgumentSyntax.parameter: - return "parameter reference" case \MacroDeclSyntax.attributes: return "attributes" case \MacroDeclSyntax.modifiers: diff --git a/Sources/SwiftSyntax/generated/ChildNameForKeyPath.swift b/Sources/SwiftSyntax/generated/ChildNameForKeyPath.swift index 31a6ac2cac5..39464603358 100644 --- a/Sources/SwiftSyntax/generated/ChildNameForKeyPath.swift +++ b/Sources/SwiftSyntax/generated/ChildNameForKeyPath.swift @@ -1995,38 +1995,6 @@ public func childName(_ keyPath: AnyKeyPath) -> String? { return "rightParen" case \LayoutRequirementSyntax.unexpectedAfterRightParen: return "unexpectedAfterRightParen" - case \LifetimeSpecifierArgumentSyntax.unexpectedBeforeParameter: - return "unexpectedBeforeParameter" - case \LifetimeSpecifierArgumentSyntax.parameter: - return "parameter" - case \LifetimeSpecifierArgumentSyntax.unexpectedBetweenParameterAndTrailingComma: - return "unexpectedBetweenParameterAndTrailingComma" - case \LifetimeSpecifierArgumentSyntax.trailingComma: - return "trailingComma" - case \LifetimeSpecifierArgumentSyntax.unexpectedAfterTrailingComma: - return "unexpectedAfterTrailingComma" - case \LifetimeTypeSpecifierSyntax.unexpectedBeforeDependsOnKeyword: - return "unexpectedBeforeDependsOnKeyword" - case \LifetimeTypeSpecifierSyntax.dependsOnKeyword: - return "dependsOnKeyword" - case \LifetimeTypeSpecifierSyntax.unexpectedBetweenDependsOnKeywordAndLeftParen: - return "unexpectedBetweenDependsOnKeywordAndLeftParen" - case \LifetimeTypeSpecifierSyntax.leftParen: - return "leftParen" - case \LifetimeTypeSpecifierSyntax.unexpectedBetweenLeftParenAndScopedKeyword: - return "unexpectedBetweenLeftParenAndScopedKeyword" - case \LifetimeTypeSpecifierSyntax.scopedKeyword: - return "scopedKeyword" - case \LifetimeTypeSpecifierSyntax.unexpectedBetweenScopedKeywordAndArguments: - return "unexpectedBetweenScopedKeywordAndArguments" - case \LifetimeTypeSpecifierSyntax.arguments: - return "arguments" - case \LifetimeTypeSpecifierSyntax.unexpectedBetweenArgumentsAndRightParen: - return "unexpectedBetweenArgumentsAndRightParen" - case \LifetimeTypeSpecifierSyntax.rightParen: - return "rightParen" - case \LifetimeTypeSpecifierSyntax.unexpectedAfterRightParen: - return "unexpectedAfterRightParen" case \MacroDeclSyntax.unexpectedBeforeAttributes: return "unexpectedBeforeAttributes" case \MacroDeclSyntax.attributes: diff --git a/Sources/SwiftSyntax/generated/SyntaxAnyVisitor.swift b/Sources/SwiftSyntax/generated/SyntaxAnyVisitor.swift index 6b4a238d8cf..d7b2e83a095 100644 --- a/Sources/SwiftSyntax/generated/SyntaxAnyVisitor.swift +++ b/Sources/SwiftSyntax/generated/SyntaxAnyVisitor.swift @@ -1342,48 +1342,6 @@ open class SyntaxAnyVisitor: SyntaxVisitor { visitAnyPost(node._syntaxNode) } - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - override open func visit(_ node: LifetimeSpecifierArgumentListSyntax) -> SyntaxVisitorContinueKind { - return visitAny(node._syntaxNode) - } - - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - override open func visitPost(_ node: LifetimeSpecifierArgumentListSyntax) { - visitAnyPost(node._syntaxNode) - } - - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - override open func visit(_ node: LifetimeSpecifierArgumentSyntax) -> SyntaxVisitorContinueKind { - return visitAny(node._syntaxNode) - } - - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - override open func visitPost(_ node: LifetimeSpecifierArgumentSyntax) { - visitAnyPost(node._syntaxNode) - } - - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - override open func visit(_ node: LifetimeTypeSpecifierSyntax) -> SyntaxVisitorContinueKind { - return visitAny(node._syntaxNode) - } - - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - override open func visitPost(_ node: LifetimeTypeSpecifierSyntax) { - visitAnyPost(node._syntaxNode) - } - override open func visit(_ node: MacroDeclSyntax) -> SyntaxVisitorContinueKind { return visitAny(node._syntaxNode) } diff --git a/Sources/SwiftSyntax/generated/SyntaxBaseNodes.swift b/Sources/SwiftSyntax/generated/SyntaxBaseNodes.swift index 4341ca1bc2f..edd2fc1be64 100644 --- a/Sources/SwiftSyntax/generated/SyntaxBaseNodes.swift +++ b/Sources/SwiftSyntax/generated/SyntaxBaseNodes.swift @@ -1677,9 +1677,6 @@ extension Syntax { .node(LabeledSpecializeArgumentSyntax.self), .node(LabeledStmtSyntax.self), .node(LayoutRequirementSyntax.self), - .node(LifetimeSpecifierArgumentListSyntax.self), - .node(LifetimeSpecifierArgumentSyntax.self), - .node(LifetimeTypeSpecifierSyntax.self), .node(MacroDeclSyntax.self), .node(MacroExpansionDeclSyntax.self), .node(MacroExpansionExprSyntax.self), diff --git a/Sources/SwiftSyntax/generated/SyntaxCollections.swift b/Sources/SwiftSyntax/generated/SyntaxCollections.swift index 096d0512165..ee33ad340aa 100644 --- a/Sources/SwiftSyntax/generated/SyntaxCollections.swift +++ b/Sources/SwiftSyntax/generated/SyntaxCollections.swift @@ -884,29 +884,6 @@ public struct LabeledExprListSyntax: SyntaxCollection, SyntaxHashable { public static let syntaxKind = SyntaxKind.labeledExprList } -/// - Note: Requires experimental feature `nonescapableTypes`. -/// -/// ### Children -/// -/// `LifetimeSpecifierArgumentSyntax` `*` -#if compiler(>=5.8) -@_spi(ExperimentalLanguageFeatures) -#endif -public struct LifetimeSpecifierArgumentListSyntax: SyntaxCollection, SyntaxHashable { - public typealias Element = LifetimeSpecifierArgumentSyntax - - public let _syntaxNode: Syntax - - public init?(_ node: some SyntaxProtocol) { - guard node.raw.kind == .lifetimeSpecifierArgumentList else { - return nil - } - self._syntaxNode = node._syntaxNode - } - - public static let syntaxKind = SyntaxKind.lifetimeSpecifierArgumentList -} - /// ### Children /// /// ``MemberBlockItemSyntax`` `*` @@ -1675,7 +1652,7 @@ public struct TupleTypeElementListSyntax: SyntaxCollection, SyntaxHashable { /// ### Children /// -/// (``SimpleTypeSpecifierSyntax`` | `LifetimeTypeSpecifierSyntax`) `*` +/// ``SimpleTypeSpecifierSyntax`` `*` /// /// ### Contained in /// @@ -1684,19 +1661,11 @@ public struct TypeSpecifierListSyntax: SyntaxCollection, SyntaxHashable { public enum Element: SyntaxChildChoices, SyntaxHashable { /// A specifier that can be attached to a type to eg. mark a parameter as `inout` or `consuming` case simpleTypeSpecifier(SimpleTypeSpecifierSyntax) - /// A specifier that specifies function parameter on whose lifetime a type depends - /// - Note: Requires experimental feature `nonescapableTypes`. - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - case lifetimeTypeSpecifier(LifetimeTypeSpecifierSyntax) public var _syntaxNode: Syntax { switch self { case .simpleTypeSpecifier(let node): return node._syntaxNode - case .lifetimeTypeSpecifier(let node): - return node._syntaxNode } } @@ -1704,26 +1673,16 @@ public struct TypeSpecifierListSyntax: SyntaxCollection, SyntaxHashable { self = .simpleTypeSpecifier(node) } - /// - Note: Requires experimental feature `nonescapableTypes`. - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - public init(_ node: LifetimeTypeSpecifierSyntax) { - self = .lifetimeTypeSpecifier(node) - } - public init?(_ node: __shared some SyntaxProtocol) { if let node = node.as(SimpleTypeSpecifierSyntax.self) { self = .simpleTypeSpecifier(node) - } else if let node = node.as(LifetimeTypeSpecifierSyntax.self) { - self = .lifetimeTypeSpecifier(node) } else { return nil } } public static var structure: SyntaxNodeStructure { - return .choices([.node(SimpleTypeSpecifierSyntax.self), .node(LifetimeTypeSpecifierSyntax.self)]) + return .choices([.node(SimpleTypeSpecifierSyntax.self)]) } /// Checks if the current syntax node can be cast to ``SimpleTypeSpecifierSyntax``. @@ -1747,40 +1706,6 @@ public struct TypeSpecifierListSyntax: SyntaxCollection, SyntaxHashable { public func cast(_ syntaxType: SimpleTypeSpecifierSyntax.Type) -> SimpleTypeSpecifierSyntax { return self.as(SimpleTypeSpecifierSyntax.self)! } - - /// Checks if the current syntax node can be cast to `LifetimeTypeSpecifierSyntax`. - /// - /// - Returns: `true` if the node can be cast, `false` otherwise. - /// - Note: Requires experimental feature `nonescapableTypes`. - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - public func `is`(_ syntaxType: LifetimeTypeSpecifierSyntax.Type) -> Bool { - return self.as(syntaxType) != nil - } - - /// Attempts to cast the current syntax node to `LifetimeTypeSpecifierSyntax`. - /// - /// - Returns: An instance of `LifetimeTypeSpecifierSyntax`, or `nil` if the cast fails. - /// - Note: Requires experimental feature `nonescapableTypes`. - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - public func `as`(_ syntaxType: LifetimeTypeSpecifierSyntax.Type) -> LifetimeTypeSpecifierSyntax? { - return LifetimeTypeSpecifierSyntax.init(self) - } - - /// Force-casts the current syntax node to `LifetimeTypeSpecifierSyntax`. - /// - /// - Returns: An instance of `LifetimeTypeSpecifierSyntax`. - /// - Warning: This function will crash if the cast is not possible. Use `as` to safely attempt a cast. - /// - Note: Requires experimental feature `nonescapableTypes`. - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - public func cast(_ syntaxType: LifetimeTypeSpecifierSyntax.Type) -> LifetimeTypeSpecifierSyntax { - return self.as(LifetimeTypeSpecifierSyntax.self)! - } } public let _syntaxNode: Syntax diff --git a/Sources/SwiftSyntax/generated/SyntaxEnum.swift b/Sources/SwiftSyntax/generated/SyntaxEnum.swift index fef31916caa..a5a2e5026f7 100644 --- a/Sources/SwiftSyntax/generated/SyntaxEnum.swift +++ b/Sources/SwiftSyntax/generated/SyntaxEnum.swift @@ -178,18 +178,6 @@ public enum SyntaxEnum: Sendable { case labeledSpecializeArgument(LabeledSpecializeArgumentSyntax) case labeledStmt(LabeledStmtSyntax) case layoutRequirement(LayoutRequirementSyntax) - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - case lifetimeSpecifierArgumentList(LifetimeSpecifierArgumentListSyntax) - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - case lifetimeSpecifierArgument(LifetimeSpecifierArgumentSyntax) - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - case lifetimeTypeSpecifier(LifetimeTypeSpecifierSyntax) case macroDecl(MacroDeclSyntax) case macroExpansionDecl(MacroExpansionDeclSyntax) case macroExpansionExpr(MacroExpansionExprSyntax) @@ -641,12 +629,6 @@ extension Syntax { return .labeledStmt(LabeledStmtSyntax(self)!) case .layoutRequirement: return .layoutRequirement(LayoutRequirementSyntax(self)!) - case .lifetimeSpecifierArgumentList: - return .lifetimeSpecifierArgumentList(LifetimeSpecifierArgumentListSyntax(self)!) - case .lifetimeSpecifierArgument: - return .lifetimeSpecifierArgument(LifetimeSpecifierArgumentSyntax(self)!) - case .lifetimeTypeSpecifier: - return .lifetimeTypeSpecifier(LifetimeTypeSpecifierSyntax(self)!) case .macroDecl: return .macroDecl(MacroDeclSyntax(self)!) case .macroExpansionDecl: diff --git a/Sources/SwiftSyntax/generated/SyntaxKind.swift b/Sources/SwiftSyntax/generated/SyntaxKind.swift index e8efa17158f..495a1bfd30a 100644 --- a/Sources/SwiftSyntax/generated/SyntaxKind.swift +++ b/Sources/SwiftSyntax/generated/SyntaxKind.swift @@ -178,18 +178,6 @@ public enum SyntaxKind: Sendable { case labeledSpecializeArgument case labeledStmt case layoutRequirement - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - case lifetimeSpecifierArgumentList - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - case lifetimeSpecifierArgument - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - case lifetimeTypeSpecifier case macroDecl case macroExpansionDecl case macroExpansionExpr @@ -378,8 +366,6 @@ public enum SyntaxKind: Sendable { return true case .labeledExprList: return true - case .lifetimeSpecifierArgumentList: - return true case .memberBlockItemList: return true case .multipleTrailingClosureElementList: @@ -766,12 +752,6 @@ public enum SyntaxKind: Sendable { return LabeledStmtSyntax.self case .layoutRequirement: return LayoutRequirementSyntax.self - case .lifetimeSpecifierArgumentList: - return LifetimeSpecifierArgumentListSyntax.self - case .lifetimeSpecifierArgument: - return LifetimeSpecifierArgumentSyntax.self - case .lifetimeTypeSpecifier: - return LifetimeTypeSpecifierSyntax.self case .macroDecl: return MacroDeclSyntax.self case .macroExpansionDecl: diff --git a/Sources/SwiftSyntax/generated/SyntaxRewriter.swift b/Sources/SwiftSyntax/generated/SyntaxRewriter.swift index 81aa2100d67..549c3329b60 100644 --- a/Sources/SwiftSyntax/generated/SyntaxRewriter.swift +++ b/Sources/SwiftSyntax/generated/SyntaxRewriter.swift @@ -1229,36 +1229,6 @@ open class SyntaxRewriter { return visitChildren(node._syntaxNode).cast(LayoutRequirementSyntax.self) } - /// Visit a `LifetimeSpecifierArgumentListSyntax`. - /// - Parameter node: the node that is being visited - /// - Returns: the rewritten node - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - open func visit(_ node: LifetimeSpecifierArgumentListSyntax) -> LifetimeSpecifierArgumentListSyntax { - return visitChildren(node._syntaxNode).cast(LifetimeSpecifierArgumentListSyntax.self) - } - - /// Visit a `LifetimeSpecifierArgumentSyntax`. - /// - Parameter node: the node that is being visited - /// - Returns: the rewritten node - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - open func visit(_ node: LifetimeSpecifierArgumentSyntax) -> LifetimeSpecifierArgumentSyntax { - return visitChildren(node._syntaxNode).cast(LifetimeSpecifierArgumentSyntax.self) - } - - /// Visit a `LifetimeTypeSpecifierSyntax`. - /// - Parameter node: the node that is being visited - /// - Returns: the rewritten node - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - open func visit(_ node: LifetimeTypeSpecifierSyntax) -> LifetimeTypeSpecifierSyntax { - return visitChildren(node._syntaxNode).cast(LifetimeTypeSpecifierSyntax.self) - } - /// Visit a ``MacroDeclSyntax``. /// - Parameter node: the node that is being visited /// - Returns: the rewritten node @@ -2831,18 +2801,6 @@ open class SyntaxRewriter { return { self.visitImpl(&$0, LayoutRequirementSyntax.self, self.visit) } - case .lifetimeSpecifierArgumentList: - return { - self.visitImpl(&$0, LifetimeSpecifierArgumentListSyntax.self, self.visit) - } - case .lifetimeSpecifierArgument: - return { - self.visitImpl(&$0, LifetimeSpecifierArgumentSyntax.self, self.visit) - } - case .lifetimeTypeSpecifier: - return { - self.visitImpl(&$0, LifetimeTypeSpecifierSyntax.self, self.visit) - } case .macroDecl: return { self.visitImpl(&$0, MacroDeclSyntax.self, self.visit) @@ -3653,12 +3611,6 @@ open class SyntaxRewriter { return visitImpl(&node, LabeledStmtSyntax.self, visit) case .layoutRequirement: return visitImpl(&node, LayoutRequirementSyntax.self, visit) - case .lifetimeSpecifierArgumentList: - return visitImpl(&node, LifetimeSpecifierArgumentListSyntax.self, visit) - case .lifetimeSpecifierArgument: - return visitImpl(&node, LifetimeSpecifierArgumentSyntax.self, visit) - case .lifetimeTypeSpecifier: - return visitImpl(&node, LifetimeTypeSpecifierSyntax.self, visit) case .macroDecl: return visitImpl(&node, MacroDeclSyntax.self, visit) case .macroExpansionDecl: diff --git a/Sources/SwiftSyntax/generated/SyntaxTraits.swift b/Sources/SwiftSyntax/generated/SyntaxTraits.swift index 68f8ad515c9..f3e788b21c6 100644 --- a/Sources/SwiftSyntax/generated/SyntaxTraits.swift +++ b/Sources/SwiftSyntax/generated/SyntaxTraits.swift @@ -777,8 +777,6 @@ extension LabeledExprSyntax: WithTrailingCommaSyntax {} extension LabeledSpecializeArgumentSyntax: WithTrailingCommaSyntax {} -extension LifetimeSpecifierArgumentSyntax: WithTrailingCommaSyntax {} - extension MacroDeclSyntax: NamedDeclSyntax, WithAttributesSyntax, WithGenericParametersSyntax, WithModifiersSyntax {} extension MacroExpansionDeclSyntax: FreestandingMacroExpansionSyntax, WithAttributesSyntax, WithModifiersSyntax {} diff --git a/Sources/SwiftSyntax/generated/SyntaxVisitor.swift b/Sources/SwiftSyntax/generated/SyntaxVisitor.swift index 145c8775d43..7ce7ffbc635 100644 --- a/Sources/SwiftSyntax/generated/SyntaxVisitor.swift +++ b/Sources/SwiftSyntax/generated/SyntaxVisitor.swift @@ -1964,60 +1964,6 @@ open class SyntaxVisitor { open func visitPost(_ node: LayoutRequirementSyntax) { } - /// Visiting `LifetimeSpecifierArgumentListSyntax` specifically. - /// - Parameter node: the node we are visiting. - /// - Returns: how should we continue visiting. - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - open func visit(_ node: LifetimeSpecifierArgumentListSyntax) -> SyntaxVisitorContinueKind { - return .visitChildren - } - - /// The function called after visiting `LifetimeSpecifierArgumentListSyntax` and its descendants. - /// - node: the node we just finished visiting. - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - open func visitPost(_ node: LifetimeSpecifierArgumentListSyntax) { - } - - /// Visiting `LifetimeSpecifierArgumentSyntax` specifically. - /// - Parameter node: the node we are visiting. - /// - Returns: how should we continue visiting. - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - open func visit(_ node: LifetimeSpecifierArgumentSyntax) -> SyntaxVisitorContinueKind { - return .visitChildren - } - - /// The function called after visiting `LifetimeSpecifierArgumentSyntax` and its descendants. - /// - node: the node we just finished visiting. - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - open func visitPost(_ node: LifetimeSpecifierArgumentSyntax) { - } - - /// Visiting `LifetimeTypeSpecifierSyntax` specifically. - /// - Parameter node: the node we are visiting. - /// - Returns: how should we continue visiting. - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - open func visit(_ node: LifetimeTypeSpecifierSyntax) -> SyntaxVisitorContinueKind { - return .visitChildren - } - - /// The function called after visiting `LifetimeTypeSpecifierSyntax` and its descendants. - /// - node: the node we just finished visiting. - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - open func visitPost(_ node: LifetimeTypeSpecifierSyntax) { - } - /// Visiting ``MacroDeclSyntax`` specifically. /// - Parameter node: the node we are visiting. /// - Returns: how should we continue visiting. @@ -4175,18 +4121,6 @@ open class SyntaxVisitor { return { self.visitImpl(&$0, LayoutRequirementSyntax.self, self.visit, self.visitPost) } - case .lifetimeSpecifierArgumentList: - return { - self.visitImpl(&$0, LifetimeSpecifierArgumentListSyntax.self, self.visit, self.visitPost) - } - case .lifetimeSpecifierArgument: - return { - self.visitImpl(&$0, LifetimeSpecifierArgumentSyntax.self, self.visit, self.visitPost) - } - case .lifetimeTypeSpecifier: - return { - self.visitImpl(&$0, LifetimeTypeSpecifierSyntax.self, self.visit, self.visitPost) - } case .macroDecl: return { self.visitImpl(&$0, MacroDeclSyntax.self, self.visit, self.visitPost) @@ -5001,12 +4935,6 @@ open class SyntaxVisitor { visitImpl(&node, LabeledStmtSyntax.self, visit, visitPost) case .layoutRequirement: visitImpl(&node, LayoutRequirementSyntax.self, visit, visitPost) - case .lifetimeSpecifierArgumentList: - visitImpl(&node, LifetimeSpecifierArgumentListSyntax.self, visit, visitPost) - case .lifetimeSpecifierArgument: - visitImpl(&node, LifetimeSpecifierArgumentSyntax.self, visit, visitPost) - case .lifetimeTypeSpecifier: - visitImpl(&node, LifetimeTypeSpecifierSyntax.self, visit, visitPost) case .macroDecl: visitImpl(&node, MacroDeclSyntax.self, visit, visitPost) case .macroExpansionDecl: diff --git a/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesJKLMN.swift b/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesJKLMN.swift index ea8497a3da5..5810fbb2f68 100644 --- a/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesJKLMN.swift +++ b/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesJKLMN.swift @@ -919,241 +919,6 @@ public struct RawLayoutRequirementSyntax: RawSyntaxNodeProtocol { } } -#if compiler(>=5.8) -@_spi(ExperimentalLanguageFeatures) -#endif -@_spi(RawSyntax) -public struct RawLifetimeSpecifierArgumentListSyntax: RawSyntaxNodeProtocol { - @_spi(RawSyntax) - public var layoutView: RawSyntaxLayoutView { - return raw.layoutView! - } - - public static func isKindOf(_ raw: RawSyntax) -> Bool { - return raw.kind == .lifetimeSpecifierArgumentList - } - - public var raw: RawSyntax - - init(raw: RawSyntax) { - precondition(Self.isKindOf(raw)) - self.raw = raw - } - - private init(unchecked raw: RawSyntax) { - self.raw = raw - } - - public init?(_ other: some RawSyntaxNodeProtocol) { - guard Self.isKindOf(other.raw) else { - return nil - } - self.init(unchecked: other.raw) - } - - public init(elements: [RawLifetimeSpecifierArgumentSyntax], arena: __shared SyntaxArena) { - let raw = RawSyntax.makeLayout( - kind: .lifetimeSpecifierArgumentList, uninitializedCount: elements.count, arena: arena) { layout in - guard var ptr = layout.baseAddress else { - return - } - for elem in elements { - ptr.initialize(to: elem.raw) - ptr += 1 - } - } - self.init(unchecked: raw) - } - - public var elements: [RawLifetimeSpecifierArgumentSyntax] { - layoutView.children.map { - RawLifetimeSpecifierArgumentSyntax(raw: $0!) - } - } -} - -#if compiler(>=5.8) -@_spi(ExperimentalLanguageFeatures) -#endif -@_spi(RawSyntax) -public struct RawLifetimeSpecifierArgumentSyntax: RawSyntaxNodeProtocol { - @_spi(RawSyntax) - public var layoutView: RawSyntaxLayoutView { - return raw.layoutView! - } - - public static func isKindOf(_ raw: RawSyntax) -> Bool { - return raw.kind == .lifetimeSpecifierArgument - } - - public var raw: RawSyntax - - init(raw: RawSyntax) { - precondition(Self.isKindOf(raw)) - self.raw = raw - } - - private init(unchecked raw: RawSyntax) { - self.raw = raw - } - - public init?(_ other: some RawSyntaxNodeProtocol) { - guard Self.isKindOf(other.raw) else { - return nil - } - self.init(unchecked: other.raw) - } - - public init( - _ unexpectedBeforeParameter: RawUnexpectedNodesSyntax? = nil, - parameter: RawTokenSyntax, - _ unexpectedBetweenParameterAndTrailingComma: RawUnexpectedNodesSyntax? = nil, - trailingComma: RawTokenSyntax?, - _ unexpectedAfterTrailingComma: RawUnexpectedNodesSyntax? = nil, - arena: __shared SyntaxArena - ) { - let raw = RawSyntax.makeLayout( - kind: .lifetimeSpecifierArgument, uninitializedCount: 5, arena: arena) { layout in - layout.initialize(repeating: nil) - layout[0] = unexpectedBeforeParameter?.raw - layout[1] = parameter.raw - layout[2] = unexpectedBetweenParameterAndTrailingComma?.raw - layout[3] = trailingComma?.raw - layout[4] = unexpectedAfterTrailingComma?.raw - } - self.init(unchecked: raw) - } - - public var unexpectedBeforeParameter: RawUnexpectedNodesSyntax? { - layoutView.children[0].map(RawUnexpectedNodesSyntax.init(raw:)) - } - - public var parameter: RawTokenSyntax { - layoutView.children[1].map(RawTokenSyntax.init(raw:))! - } - - public var unexpectedBetweenParameterAndTrailingComma: RawUnexpectedNodesSyntax? { - layoutView.children[2].map(RawUnexpectedNodesSyntax.init(raw:)) - } - - public var trailingComma: RawTokenSyntax? { - layoutView.children[3].map(RawTokenSyntax.init(raw:)) - } - - public var unexpectedAfterTrailingComma: RawUnexpectedNodesSyntax? { - layoutView.children[4].map(RawUnexpectedNodesSyntax.init(raw:)) - } -} - -#if compiler(>=5.8) -@_spi(ExperimentalLanguageFeatures) -#endif -@_spi(RawSyntax) -public struct RawLifetimeTypeSpecifierSyntax: RawSyntaxNodeProtocol { - @_spi(RawSyntax) - public var layoutView: RawSyntaxLayoutView { - return raw.layoutView! - } - - public static func isKindOf(_ raw: RawSyntax) -> Bool { - return raw.kind == .lifetimeTypeSpecifier - } - - public var raw: RawSyntax - - init(raw: RawSyntax) { - precondition(Self.isKindOf(raw)) - self.raw = raw - } - - private init(unchecked raw: RawSyntax) { - self.raw = raw - } - - public init?(_ other: some RawSyntaxNodeProtocol) { - guard Self.isKindOf(other.raw) else { - return nil - } - self.init(unchecked: other.raw) - } - - public init( - _ unexpectedBeforeDependsOnKeyword: RawUnexpectedNodesSyntax? = nil, - dependsOnKeyword: RawTokenSyntax, - _ unexpectedBetweenDependsOnKeywordAndLeftParen: RawUnexpectedNodesSyntax? = nil, - leftParen: RawTokenSyntax, - _ unexpectedBetweenLeftParenAndScopedKeyword: RawUnexpectedNodesSyntax? = nil, - scopedKeyword: RawTokenSyntax?, - _ unexpectedBetweenScopedKeywordAndArguments: RawUnexpectedNodesSyntax? = nil, - arguments: RawLifetimeSpecifierArgumentListSyntax, - _ unexpectedBetweenArgumentsAndRightParen: RawUnexpectedNodesSyntax? = nil, - rightParen: RawTokenSyntax, - _ unexpectedAfterRightParen: RawUnexpectedNodesSyntax? = nil, - arena: __shared SyntaxArena - ) { - let raw = RawSyntax.makeLayout( - kind: .lifetimeTypeSpecifier, uninitializedCount: 11, arena: arena) { layout in - layout.initialize(repeating: nil) - layout[0] = unexpectedBeforeDependsOnKeyword?.raw - layout[1] = dependsOnKeyword.raw - layout[2] = unexpectedBetweenDependsOnKeywordAndLeftParen?.raw - layout[3] = leftParen.raw - layout[4] = unexpectedBetweenLeftParenAndScopedKeyword?.raw - layout[5] = scopedKeyword?.raw - layout[6] = unexpectedBetweenScopedKeywordAndArguments?.raw - layout[7] = arguments.raw - layout[8] = unexpectedBetweenArgumentsAndRightParen?.raw - layout[9] = rightParen.raw - layout[10] = unexpectedAfterRightParen?.raw - } - self.init(unchecked: raw) - } - - public var unexpectedBeforeDependsOnKeyword: RawUnexpectedNodesSyntax? { - layoutView.children[0].map(RawUnexpectedNodesSyntax.init(raw:)) - } - - public var dependsOnKeyword: RawTokenSyntax { - layoutView.children[1].map(RawTokenSyntax.init(raw:))! - } - - public var unexpectedBetweenDependsOnKeywordAndLeftParen: RawUnexpectedNodesSyntax? { - layoutView.children[2].map(RawUnexpectedNodesSyntax.init(raw:)) - } - - public var leftParen: RawTokenSyntax { - layoutView.children[3].map(RawTokenSyntax.init(raw:))! - } - - public var unexpectedBetweenLeftParenAndScopedKeyword: RawUnexpectedNodesSyntax? { - layoutView.children[4].map(RawUnexpectedNodesSyntax.init(raw:)) - } - - public var scopedKeyword: RawTokenSyntax? { - layoutView.children[5].map(RawTokenSyntax.init(raw:)) - } - - public var unexpectedBetweenScopedKeywordAndArguments: RawUnexpectedNodesSyntax? { - layoutView.children[6].map(RawUnexpectedNodesSyntax.init(raw:)) - } - - public var arguments: RawLifetimeSpecifierArgumentListSyntax { - layoutView.children[7].map(RawLifetimeSpecifierArgumentListSyntax.init(raw:))! - } - - public var unexpectedBetweenArgumentsAndRightParen: RawUnexpectedNodesSyntax? { - layoutView.children[8].map(RawUnexpectedNodesSyntax.init(raw:)) - } - - public var rightParen: RawTokenSyntax { - layoutView.children[9].map(RawTokenSyntax.init(raw:))! - } - - public var unexpectedAfterRightParen: RawUnexpectedNodesSyntax? { - layoutView.children[10].map(RawUnexpectedNodesSyntax.init(raw:)) - } -} - @_spi(RawSyntax) public struct RawMacroDeclSyntax: RawDeclSyntaxNodeProtocol { @_spi(RawSyntax) diff --git a/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesTUVWXYZ.swift b/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesTUVWXYZ.swift index 4a2489c4ba0..0c0e3f7d421 100644 --- a/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesTUVWXYZ.swift +++ b/Sources/SwiftSyntax/generated/raw/RawSyntaxNodesTUVWXYZ.swift @@ -1413,31 +1413,21 @@ public struct RawTypeSpecifierListSyntax: RawSyntaxNodeProtocol { public enum Element: RawSyntaxNodeProtocol { /// A specifier that can be attached to a type to eg. mark a parameter as `inout` or `consuming` case simpleTypeSpecifier(RawSimpleTypeSpecifierSyntax) - /// A specifier that specifies function parameter on whose lifetime a type depends - /// - Note: Requires experimental feature `nonescapableTypes`. - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - case lifetimeTypeSpecifier(RawLifetimeTypeSpecifierSyntax) public static func isKindOf(_ raw: RawSyntax) -> Bool { - RawSimpleTypeSpecifierSyntax.isKindOf(raw) || RawLifetimeTypeSpecifierSyntax.isKindOf(raw) + RawSimpleTypeSpecifierSyntax.isKindOf(raw) } public var raw: RawSyntax { switch self { case .simpleTypeSpecifier(let node): return node.raw - case .lifetimeTypeSpecifier(let node): - return node.raw } } public init?(_ node: __shared some RawSyntaxNodeProtocol) { if let node = node.as(RawSimpleTypeSpecifierSyntax.self) { self = .simpleTypeSpecifier(node) - } else if let node = node.as(RawLifetimeTypeSpecifierSyntax.self) { - self = .lifetimeTypeSpecifier(node) } else { return nil } @@ -1485,9 +1475,9 @@ public struct RawTypeSpecifierListSyntax: RawSyntaxNodeProtocol { self.init(unchecked: raw) } - public var elements: [RawSyntax] { + public var elements: [RawSimpleTypeSpecifierSyntax] { layoutView.children.map { - RawSyntax(raw: $0!) + RawSimpleTypeSpecifierSyntax(raw: $0!) } } } diff --git a/Sources/SwiftSyntax/generated/raw/RawSyntaxValidation.swift b/Sources/SwiftSyntax/generated/raw/RawSyntaxValidation.swift index a5430c16f4a..cee0713132a 100644 --- a/Sources/SwiftSyntax/generated/raw/RawSyntaxValidation.swift +++ b/Sources/SwiftSyntax/generated/raw/RawSyntaxValidation.swift @@ -1713,30 +1713,6 @@ func validateLayout(layout: RawSyntaxBuffer, as kind: SyntaxKind) { assertNoError(kind, 14, verify(layout[14], as: RawUnexpectedNodesSyntax?.self)) assertNoError(kind, 15, verify(layout[15], as: RawTokenSyntax?.self, tokenChoices: [.tokenKind(.rightParen)])) assertNoError(kind, 16, verify(layout[16], as: RawUnexpectedNodesSyntax?.self)) - case .lifetimeSpecifierArgumentList: - for (index, element) in layout.enumerated() { - assertNoError(kind, index, verify(element, as: RawLifetimeSpecifierArgumentSyntax.self)) - } - case .lifetimeSpecifierArgument: - assert(layout.count == 5) - assertNoError(kind, 0, verify(layout[0], as: RawUnexpectedNodesSyntax?.self)) - assertNoError(kind, 1, verify(layout[1], as: RawTokenSyntax.self, tokenChoices: [.tokenKind(.identifier), .keyword("self"), .tokenKind(.integerLiteral)])) - assertNoError(kind, 2, verify(layout[2], as: RawUnexpectedNodesSyntax?.self)) - assertNoError(kind, 3, verify(layout[3], as: RawTokenSyntax?.self, tokenChoices: [.tokenKind(.comma)])) - assertNoError(kind, 4, verify(layout[4], as: RawUnexpectedNodesSyntax?.self)) - case .lifetimeTypeSpecifier: - assert(layout.count == 11) - assertNoError(kind, 0, verify(layout[0], as: RawUnexpectedNodesSyntax?.self)) - assertNoError(kind, 1, verify(layout[1], as: RawTokenSyntax.self, tokenChoices: [.keyword("dependsOn")])) - assertNoError(kind, 2, verify(layout[2], as: RawUnexpectedNodesSyntax?.self)) - assertNoError(kind, 3, verify(layout[3], as: RawTokenSyntax.self, tokenChoices: [.tokenKind(.leftParen)])) - assertNoError(kind, 4, verify(layout[4], as: RawUnexpectedNodesSyntax?.self)) - assertNoError(kind, 5, verify(layout[5], as: RawTokenSyntax?.self, tokenChoices: [.keyword("scoped")])) - assertNoError(kind, 6, verify(layout[6], as: RawUnexpectedNodesSyntax?.self)) - assertNoError(kind, 7, verify(layout[7], as: RawLifetimeSpecifierArgumentListSyntax.self)) - assertNoError(kind, 8, verify(layout[8], as: RawUnexpectedNodesSyntax?.self)) - assertNoError(kind, 9, verify(layout[9], as: RawTokenSyntax.self, tokenChoices: [.tokenKind(.rightParen)])) - assertNoError(kind, 10, verify(layout[10], as: RawUnexpectedNodesSyntax?.self)) case .macroDecl: assert(layout.count == 17) assertNoError(kind, 0, verify(layout[0], as: RawUnexpectedNodesSyntax?.self)) @@ -2648,9 +2624,7 @@ func validateLayout(layout: RawSyntaxBuffer, as kind: SyntaxKind) { assertNoError(kind, 4, verify(layout[4], as: RawUnexpectedNodesSyntax?.self)) case .typeSpecifierList: for (index, element) in layout.enumerated() { - assertAnyHasNoError(kind, index, [ - verify(element, as: RawSimpleTypeSpecifierSyntax.self), - verify(element, as: RawLifetimeTypeSpecifierSyntax.self)]) + assertNoError(kind, index, verify(element, as: RawSimpleTypeSpecifierSyntax.self)) } case .unavailableFromAsyncAttributeArguments: assert(layout.count == 7) diff --git a/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesAB.swift b/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesAB.swift index f6519df7524..bf9d0ae2fdd 100644 --- a/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesAB.swift +++ b/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesAB.swift @@ -3255,7 +3255,7 @@ public struct AttributedTypeSyntax: TypeSyntaxProtocol, SyntaxHashable, _LeafTyp /// - returns: A copy of the receiver with the provided `Specifier` /// appended to its `specifiers` collection. @available(*, deprecated, message: "Use node.specifiers.append(newElement) instead") - public func addSpecifier(_ element: Syntax) -> AttributedTypeSyntax { + public func addSpecifier(_ element: SimpleTypeSpecifierSyntax) -> AttributedTypeSyntax { var collection: RawSyntax let arena = SyntaxArena() if let col = raw.layoutView!.children[1] { diff --git a/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesJKLMN.swift b/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesJKLMN.swift index 9f48aab9adf..27ffa1c8ffd 100644 --- a/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesJKLMN.swift +++ b/Sources/SwiftSyntax/generated/syntaxNodes/SyntaxNodesJKLMN.swift @@ -1612,386 +1612,6 @@ public struct LayoutRequirementSyntax: SyntaxProtocol, SyntaxHashable, _LeafSynt ]) } -// MARK: - LifetimeSpecifierArgumentSyntax - -/// A single argument that can be added to a lifetime specifier like `borrow`, `mutate`, `consume` or `copy`. -/// -/// ### Example -/// `data` in `func foo(data: Array) -> borrow(data) ComplexReferenceType` -/// -/// - Note: Requires experimental feature `nonescapableTypes`. -/// -/// ### Children -/// -/// - `parameter`: (`` | `self` | ``) -/// - `trailingComma`: `,`? -#if compiler(>=5.8) -@_spi(ExperimentalLanguageFeatures) -#endif -public struct LifetimeSpecifierArgumentSyntax: SyntaxProtocol, SyntaxHashable, _LeafSyntaxNodeProtocol { - public let _syntaxNode: Syntax - - public init?(_ node: __shared some SyntaxProtocol) { - guard node.raw.kind == .lifetimeSpecifierArgument else { - return nil - } - self._syntaxNode = node._syntaxNode - } - - /// - Parameters: - /// - leadingTrivia: Trivia to be prepended to the leading trivia of the node’s first token. If the node is empty, there is no token to attach the trivia to and the parameter is ignored. - /// - parameter: The parameter on which the lifetime of this type depends. - /// - trailingTrivia: Trivia to be appended to the trailing trivia of the node’s last token. If the node is empty, there is no token to attach the trivia to and the parameter is ignored. - public init( - leadingTrivia: Trivia? = nil, - _ unexpectedBeforeParameter: UnexpectedNodesSyntax? = nil, - parameter: TokenSyntax, - _ unexpectedBetweenParameterAndTrailingComma: UnexpectedNodesSyntax? = nil, - trailingComma: TokenSyntax? = nil, - _ unexpectedAfterTrailingComma: UnexpectedNodesSyntax? = nil, - trailingTrivia: Trivia? = nil - ) { - // Extend the lifetime of all parameters so their arenas don't get destroyed - // before they can be added as children of the new arena. - self = withExtendedLifetime((SyntaxArena(), ( - unexpectedBeforeParameter, - parameter, - unexpectedBetweenParameterAndTrailingComma, - trailingComma, - unexpectedAfterTrailingComma - ))) { (arena, _) in - let layout: [RawSyntax?] = [ - unexpectedBeforeParameter?.raw, - parameter.raw, - unexpectedBetweenParameterAndTrailingComma?.raw, - trailingComma?.raw, - unexpectedAfterTrailingComma?.raw - ] - let raw = RawSyntax.makeLayout( - kind: SyntaxKind.lifetimeSpecifierArgument, - from: layout, - arena: arena, - leadingTrivia: leadingTrivia, - trailingTrivia: trailingTrivia - ) - return Syntax.forRoot(raw, rawNodeArena: arena).cast(Self.self) - } - } - - public var unexpectedBeforeParameter: UnexpectedNodesSyntax? { - get { - return Syntax(self).child(at: 0)?.cast(UnexpectedNodesSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 0, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeSpecifierArgumentSyntax.self) - } - } - - /// The parameter on which the lifetime of this type depends. - /// - /// This can be an identifier referring to an external parameter name, an integer literal to refer to an unnamed - /// parameter or `self` if the type's lifetime depends on the object the method is called on. - /// - /// ### Tokens - /// - /// For syntax trees generated by the parser, this is guaranteed to be one of the following kinds: - /// - `` - /// - `self` - /// - `` - public var parameter: TokenSyntax { - get { - return Syntax(self).child(at: 1)!.cast(TokenSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 1, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeSpecifierArgumentSyntax.self) - } - } - - public var unexpectedBetweenParameterAndTrailingComma: UnexpectedNodesSyntax? { - get { - return Syntax(self).child(at: 2)?.cast(UnexpectedNodesSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 2, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeSpecifierArgumentSyntax.self) - } - } - - /// ### Tokens - /// - /// For syntax trees generated by the parser, this is guaranteed to be `,`. - public var trailingComma: TokenSyntax? { - get { - return Syntax(self).child(at: 3)?.cast(TokenSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 3, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeSpecifierArgumentSyntax.self) - } - } - - public var unexpectedAfterTrailingComma: UnexpectedNodesSyntax? { - get { - return Syntax(self).child(at: 4)?.cast(UnexpectedNodesSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 4, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeSpecifierArgumentSyntax.self) - } - } - - public static let structure: SyntaxNodeStructure = .layout([ - \Self.unexpectedBeforeParameter, - \Self.parameter, - \Self.unexpectedBetweenParameterAndTrailingComma, - \Self.trailingComma, - \Self.unexpectedAfterTrailingComma - ]) -} - -// MARK: - LifetimeTypeSpecifierSyntax - -/// A specifier that specifies function parameter on whose lifetime a type depends -/// -/// - Note: Requires experimental feature `nonescapableTypes`. -/// -/// ### Children -/// -/// - `dependsOnKeyword`: `dependsOn` -/// - `leftParen`: `(` -/// - `scopedKeyword`: `scoped`? -/// - `arguments`: `LifetimeSpecifierArgumentListSyntax` -/// - `rightParen`: `)` -/// -/// ### Contained in -/// -/// - ``TypeSpecifierListSyntax`` -#if compiler(>=5.8) -@_spi(ExperimentalLanguageFeatures) -#endif -public struct LifetimeTypeSpecifierSyntax: SyntaxProtocol, SyntaxHashable, _LeafSyntaxNodeProtocol { - public let _syntaxNode: Syntax - - public init?(_ node: __shared some SyntaxProtocol) { - guard node.raw.kind == .lifetimeTypeSpecifier else { - return nil - } - self._syntaxNode = node._syntaxNode - } - - /// - Parameters: - /// - leadingTrivia: Trivia to be prepended to the leading trivia of the node’s first token. If the node is empty, there is no token to attach the trivia to and the parameter is ignored. - /// - dependsOnKeyword: lifetime dependence specifier on the return type - /// - scopedKeyword: lifetime of return value is scoped to the lifetime of the original value - /// - trailingTrivia: Trivia to be appended to the trailing trivia of the node’s last token. If the node is empty, there is no token to attach the trivia to and the parameter is ignored. - public init( - leadingTrivia: Trivia? = nil, - _ unexpectedBeforeDependsOnKeyword: UnexpectedNodesSyntax? = nil, - dependsOnKeyword: TokenSyntax = .keyword(.dependsOn), - _ unexpectedBetweenDependsOnKeywordAndLeftParen: UnexpectedNodesSyntax? = nil, - leftParen: TokenSyntax = .leftParenToken(), - _ unexpectedBetweenLeftParenAndScopedKeyword: UnexpectedNodesSyntax? = nil, - scopedKeyword: TokenSyntax? = nil, - _ unexpectedBetweenScopedKeywordAndArguments: UnexpectedNodesSyntax? = nil, - arguments: LifetimeSpecifierArgumentListSyntax, - _ unexpectedBetweenArgumentsAndRightParen: UnexpectedNodesSyntax? = nil, - rightParen: TokenSyntax = .rightParenToken(), - _ unexpectedAfterRightParen: UnexpectedNodesSyntax? = nil, - trailingTrivia: Trivia? = nil - ) { - // Extend the lifetime of all parameters so their arenas don't get destroyed - // before they can be added as children of the new arena. - self = withExtendedLifetime((SyntaxArena(), ( - unexpectedBeforeDependsOnKeyword, - dependsOnKeyword, - unexpectedBetweenDependsOnKeywordAndLeftParen, - leftParen, - unexpectedBetweenLeftParenAndScopedKeyword, - scopedKeyword, - unexpectedBetweenScopedKeywordAndArguments, - arguments, - unexpectedBetweenArgumentsAndRightParen, - rightParen, - unexpectedAfterRightParen - ))) { (arena, _) in - let layout: [RawSyntax?] = [ - unexpectedBeforeDependsOnKeyword?.raw, - dependsOnKeyword.raw, - unexpectedBetweenDependsOnKeywordAndLeftParen?.raw, - leftParen.raw, - unexpectedBetweenLeftParenAndScopedKeyword?.raw, - scopedKeyword?.raw, - unexpectedBetweenScopedKeywordAndArguments?.raw, - arguments.raw, - unexpectedBetweenArgumentsAndRightParen?.raw, - rightParen.raw, - unexpectedAfterRightParen?.raw - ] - let raw = RawSyntax.makeLayout( - kind: SyntaxKind.lifetimeTypeSpecifier, - from: layout, - arena: arena, - leadingTrivia: leadingTrivia, - trailingTrivia: trailingTrivia - ) - return Syntax.forRoot(raw, rawNodeArena: arena).cast(Self.self) - } - } - - public var unexpectedBeforeDependsOnKeyword: UnexpectedNodesSyntax? { - get { - return Syntax(self).child(at: 0)?.cast(UnexpectedNodesSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 0, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeTypeSpecifierSyntax.self) - } - } - - /// lifetime dependence specifier on the return type - /// - /// ### Tokens - /// - /// For syntax trees generated by the parser, this is guaranteed to be `dependsOn`. - public var dependsOnKeyword: TokenSyntax { - get { - return Syntax(self).child(at: 1)!.cast(TokenSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 1, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeTypeSpecifierSyntax.self) - } - } - - public var unexpectedBetweenDependsOnKeywordAndLeftParen: UnexpectedNodesSyntax? { - get { - return Syntax(self).child(at: 2)?.cast(UnexpectedNodesSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 2, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeTypeSpecifierSyntax.self) - } - } - - /// ### Tokens - /// - /// For syntax trees generated by the parser, this is guaranteed to be `(`. - public var leftParen: TokenSyntax { - get { - return Syntax(self).child(at: 3)!.cast(TokenSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 3, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeTypeSpecifierSyntax.self) - } - } - - public var unexpectedBetweenLeftParenAndScopedKeyword: UnexpectedNodesSyntax? { - get { - return Syntax(self).child(at: 4)?.cast(UnexpectedNodesSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 4, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeTypeSpecifierSyntax.self) - } - } - - /// lifetime of return value is scoped to the lifetime of the original value - /// - /// ### Tokens - /// - /// For syntax trees generated by the parser, this is guaranteed to be `scoped`. - public var scopedKeyword: TokenSyntax? { - get { - return Syntax(self).child(at: 5)?.cast(TokenSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 5, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeTypeSpecifierSyntax.self) - } - } - - public var unexpectedBetweenScopedKeywordAndArguments: UnexpectedNodesSyntax? { - get { - return Syntax(self).child(at: 6)?.cast(UnexpectedNodesSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 6, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeTypeSpecifierSyntax.self) - } - } - - public var arguments: LifetimeSpecifierArgumentListSyntax { - get { - return Syntax(self).child(at: 7)!.cast(LifetimeSpecifierArgumentListSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 7, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeTypeSpecifierSyntax.self) - } - } - - /// Adds the provided `element` to the node's `arguments` - /// collection. - /// - /// - param element: The new `Arguments` to add to the node's - /// `arguments` collection. - /// - returns: A copy of the receiver with the provided `Arguments` - /// appended to its `arguments` collection. - @available(*, deprecated, message: "Use node.arguments.append(newElement) instead") - public func addArguments(_ element: LifetimeSpecifierArgumentSyntax) -> LifetimeTypeSpecifierSyntax { - var collection: RawSyntax - let arena = SyntaxArena() - if let col = raw.layoutView!.children[7] { - collection = col.layoutView!.appending(element.raw, arena: arena) - } else { - collection = RawSyntax.makeLayout(kind: SyntaxKind.lifetimeSpecifierArgumentList, - from: [element.raw], arena: arena) - } - return Syntax(self) - .replacingChild( - at: 7, - with: collection, - rawNodeArena: arena, - allocationArena: arena - ) - .cast(LifetimeTypeSpecifierSyntax.self) - } - - public var unexpectedBetweenArgumentsAndRightParen: UnexpectedNodesSyntax? { - get { - return Syntax(self).child(at: 8)?.cast(UnexpectedNodesSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 8, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeTypeSpecifierSyntax.self) - } - } - - /// ### Tokens - /// - /// For syntax trees generated by the parser, this is guaranteed to be `)`. - public var rightParen: TokenSyntax { - get { - return Syntax(self).child(at: 9)!.cast(TokenSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 9, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeTypeSpecifierSyntax.self) - } - } - - public var unexpectedAfterRightParen: UnexpectedNodesSyntax? { - get { - return Syntax(self).child(at: 10)?.cast(UnexpectedNodesSyntax.self) - } - set(value) { - self = Syntax(self).replacingChild(at: 10, with: Syntax(value), arena: SyntaxArena()).cast(LifetimeTypeSpecifierSyntax.self) - } - } - - public static let structure: SyntaxNodeStructure = .layout([ - \Self.unexpectedBeforeDependsOnKeyword, - \Self.dependsOnKeyword, - \Self.unexpectedBetweenDependsOnKeywordAndLeftParen, - \Self.leftParen, - \Self.unexpectedBetweenLeftParenAndScopedKeyword, - \Self.scopedKeyword, - \Self.unexpectedBetweenScopedKeywordAndArguments, - \Self.arguments, - \Self.unexpectedBetweenArgumentsAndRightParen, - \Self.rightParen, - \Self.unexpectedAfterRightParen - ]) -} - // MARK: - MacroDeclSyntax /// ### Children diff --git a/Sources/SwiftSyntaxBuilder/generated/ResultBuilders.swift b/Sources/SwiftSyntaxBuilder/generated/ResultBuilders.swift index abc2a1a100c..1b0f229ae86 100644 --- a/Sources/SwiftSyntaxBuilder/generated/ResultBuilders.swift +++ b/Sources/SwiftSyntaxBuilder/generated/ResultBuilders.swift @@ -429,22 +429,6 @@ extension LabeledExprListSyntax { } } -// MARK: - LifetimeSpecifierArgumentListBuilder - -#if compiler(>=5.8) -@_spi(ExperimentalLanguageFeatures) -#endif -@resultBuilder -public struct LifetimeSpecifierArgumentListBuilder: ListBuilder { - public typealias FinalResult = LifetimeSpecifierArgumentListSyntax -} - -extension LifetimeSpecifierArgumentListSyntax { - public init(@LifetimeSpecifierArgumentListBuilder itemsBuilder: () throws -> LifetimeSpecifierArgumentListSyntax) rethrows { - self = try itemsBuilder() - } -} - // MARK: - MemberBlockItemListBuilder @resultBuilder @@ -689,17 +673,6 @@ extension TupleTypeElementListSyntax { @resultBuilder public struct TypeSpecifierListBuilder: ListBuilder { public typealias FinalResult = TypeSpecifierListSyntax - - public static func buildExpression(_ expression: SimpleTypeSpecifierSyntax) -> Component { - buildExpression(.init(expression)) - } - - #if compiler(>=5.8) - @_spi(ExperimentalLanguageFeatures) - #endif - public static func buildExpression(_ expression: LifetimeTypeSpecifierSyntax) -> Component { - buildExpression(.init(expression)) - } } extension TypeSpecifierListSyntax {