InitializerClauseSyntax
SyntaxNodesGHI.swift:3795struct InitializerClauseSyntax
struct InitializerClauseSyntax
import SwiftSyntax
A library for working with Swift code.
struct ExprSyntax
struct ClosureCaptureSyntax
var initializer: InitializerClauseSyntax? { get set }
struct EnumCaseElementSyntax
An element of an enum case, containing the name of the case and, optionally, either associated values or an assignment to a raw value.
var rawValue: InitializerClauseSyntax? { get set }
The raw value of this enum element, if present.
struct EnumCaseParameterSyntax
var defaultValue: InitializerClauseSyntax? { get set }
If the parameter has a default value, the initializer clause describing the default value.
struct FunctionParameterSyntax
A function parameter
var defaultValue: InitializerClauseSyntax? { get set }
If the parameter has a default value, the expression describing the default value.
struct MacroDeclSyntax
var definition: InitializerClauseSyntax? { get set }
struct MatchingPatternConditionSyntax
var initializer: InitializerClauseSyntax { get set }
struct OptionalBindingConditionSyntax
var initializer: InitializerClauseSyntax? { get set }
struct PatternBindingSyntax
Defines variables inside a variable declaration.
var initializer: InitializerClauseSyntax? { get set }
If the variables have a default value, the clause that initializes them.
struct AccessorBlockSyntax
struct AccessorEffectSpecifiersSyntax
struct AccessorParametersSyntax
struct AvailabilityConditionSyntax
struct AvailabilityLabeledArgumentSyntax
An argument to an @available
attribute that consists of a label and a value, e.g. message: "This has been deprecated"
.
struct ClosureCaptureClauseSyntax
struct ClosureCaptureSpecifierSyntax
struct ClosureParameterClauseSyntax
struct ClosureSignatureSyntax
struct CodeBlockSyntax
struct ConformanceRequirementSyntax
struct DeclModifierDetailSyntax
struct DeclNameArgumentsSyntax
struct DeinitializerEffectSpecifiersSyntax
struct EnumCaseParameterClauseSyntax
struct FunctionEffectSpecifiersSyntax
struct FunctionParameterClauseSyntax
struct FunctionSignatureSyntax
A function signature that defines the interface of the function.
struct GenericArgumentClauseSyntax
struct GenericParameterClauseSyntax
The parameter clause that defines the generic parameters.
struct InheritanceClauseSyntax
struct KeyPathOptionalComponentSyntax
A key path component like ?
or !
.
struct KeyPathPropertyComponentSyntax
A key path component like .property
or .1
.
struct KeyPathSubscriptComponentSyntax
A key path component like .[17]
struct LayoutRequirementSyntax
struct MemberBlockSyntax
struct MissingSyntax
In case the source code is missing a syntax node, this node stands in place of the missing node.
struct OperatorPrecedenceAndTypesSyntax
A clause to specify precedence group in infix operator declarations, and designated types in any operator declaration.
struct PlatformVersionSyntax
An argument to @available
that restricts the availability on a certain platform to a version, e.g. iOS 10
or swift 3.4
.
struct PoundSourceLocationArgumentsSyntax
struct PrimaryAssociatedTypeClauseSyntax
struct ReturnClauseSyntax
struct SameTypeRequirementSyntax
struct SourceFileSyntax
struct SwitchCaseLabelSyntax
struct SwitchDefaultLabelSyntax
struct ThrowsClauseSyntax
struct TypeAnnotationSyntax
struct TypeEffectSpecifiersSyntax
struct TypeInitializerClauseSyntax
struct VersionTupleSyntax
A version number like 1.2.0
. Only the first version component is required. There might be an arbitrary number of following components.
struct WhereClauseSyntax
struct YieldedExpressionsClauseSyntax
protocol CustomDebugStringConvertible
A type with a customized textual representation suitable for debugging purposes.
protocol CustomReflectable
A type that explicitly supplies its own mirror.
protocol CustomStringConvertible
A type with a customized textual representation.
protocol Equatable
A type that can be compared for value equality.
protocol Hashable : Equatable
A type that can be hashed into a Hasher
to produce an integer hash value.
protocol Sendable
A thread-safe type whose values can be shared across arbitrary concurrent contexts without introducing a risk of data races. Values of the type may have no shared mutable state, or they may protect that state with a lock or by forcing it to only be accessed from a specific actor.
protocol SyntaxHashable : Hashable
Protocol that provides a common Hashable implementation for all syntax nodes
protocol SyntaxProtocol : CustomDebugStringConvertible, CustomReflectable, CustomStringConvertible, Sendable, TextOutputStreamable
Provide common functionality for specialized syntax nodes. Extend this protocol to provide common functionality for all syntax nodes.
protocol TextOutputStreamable
A source of text-streaming operations.
protocol _LeafSyntaxNodeProtocol : SyntaxProtocol
Protocol that syntax nodes conform to if they don’t have any semantic subtypes. These are syntax nodes that are not considered base nodes for other syntax types.
init?(_ node: some SyntaxProtocol)
init(leadingTrivia: Trivia? = nil, _ unexpectedBeforeEqual: UnexpectedNodesSyntax? = nil, equal: TokenSyntax = .equalToken(), _ unexpectedBetweenEqualAndValue: UnexpectedNodesSyntax? = nil, value: some ExprSyntaxProtocol, _ unexpectedAfterValue: UnexpectedNodesSyntax? = nil, trailingTrivia: Trivia? = nil)
static let structure: SyntaxNodeStructure
let _syntaxNode: Syntax
var equal: TokenSyntax { get set }
var unexpectedAfterValue: UnexpectedNodesSyntax? { get set }
var unexpectedBeforeEqual: UnexpectedNodesSyntax? { get set }
var unexpectedBetweenEqualAndValue: UnexpectedNodesSyntax? { get set }
var value: ExprSyntax { get set }
init?<S>(_ node: S?) where S : SyntaxProtocol
Initializes a new instance of the conforming type from a given specialized syntax node.
var customMirror: Mirror { get }
var debugDescription: String { get }
A simple description of this node (ie. its type).
var description: String { get }
A source-accurate description of this node.
var detached: Self { get }
Return this subtree with this node as the root, ie. detach this node from its parent.
var endPosition: AbsolutePosition { get }
The end position of this node, including its trivia.
var endPositionBeforeTrailingTrivia: AbsolutePosition { get }
The end position of this node’s content, before any trailing trivia.
var hasError: Bool { get }
Whether the tree contained by this layout has any
var hasMaximumNestingLevelOverflow: Bool { get }
var hasParent: Bool { get }
Whether or not this node has a parent.
var hasSequenceExpr: Bool { get }
Whether this tree contains a missing token or unexpected node.
var hasWarning: Bool { get }
Whether the tree contained by this layout has any tokens with a TokenDiagnostic
of severity warning
.
var id: SyntaxIdentifier { get }
Returns a value representing the unique identity of the node.
var keyPathInParent: AnyKeyPath? { get }
var kind: SyntaxKind { get }
The kind of the syntax node, e.g. if it is a functionDecl
.
var leadingTrivia: Trivia { get set }
The leading trivia of this syntax node.
var leadingTriviaLength: SourceLength { get }
The length this node’s leading trivia takes up spelled out in source.
var parent: Syntax? { get }
The parent of this syntax node, or nil
if this node is the root.
var position: AbsolutePosition { get }
The absolute position of the starting point of this node. If the first token is with leading trivia, the position points to the start of the leading trivia.
var positionAfterSkippingLeadingTrivia: AbsolutePosition { get }
The absolute position of the starting point of this node, skipping any leading trivia attached to the first token syntax.
var range: Range<AbsolutePosition> { get }
The range of this node including leading and trailing trivia.
var raw: RawSyntax { get }
var root: Syntax { get }
The root of the tree in which this node resides.
var syntaxNodeType: any SyntaxProtocol.Type { get }
The dynamic metatype of the concrete node.
var syntaxTextBytes: [UInt8] { get }
Retrieve the syntax text as an array of bytes that models the input source even in the presence of invalid UTF-8.
var totalLength: SourceLength { get }
The length of this node including all of its trivia.
var trailingTrivia: Trivia { get set }
The trailing trivia of this syntax node.
var trailingTriviaLength: SourceLength { get }
The length this node’s trailing trivia takes up spelled out in source.
var trimmed: Self { get }
A copy of this node without the leading trivia of the first token in the node and the trailing trivia of the last token in the node.
var trimmedDescription: String { get }
The description of this node with leading whitespace of the first token and trailing whitespace of the last token removed.
var trimmedLength: SourceLength { get }
The length this node takes up spelled out in the source, excluding its leading or trailing trivia.
var trimmedRange: Range<AbsolutePosition> { get }
The range of this node excluding leading and trailing trivia.
static func != (lhs: Self, rhs: Self) -> Bool
Returns a Boolean value indicating whether two values are not equal.
static func == (lhs: Self, rhs: Self) -> Bool
func ancestorOrSelf<T>(mapping map: (Syntax) -> T?) -> T?
Returns this node or the first ancestor that satisfies condition
.
func `as`<S>(_ syntaxType: S.Type) -> S? where S : SyntaxProtocol
Attempts to cast the current syntax node to a given specialized syntax type.
func asProtocol(_: (any MissingNodeSyntax).Type) -> (any MissingNodeSyntax)?
Return the non-type erased version of this syntax node if it conforms to MissingNodeSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any ParenthesizedSyntax).Type) -> (any ParenthesizedSyntax)?
Return the non-type erased version of this syntax node if it conforms to ParenthesizedSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any WithCodeBlockSyntax).Type) -> (any WithCodeBlockSyntax)?
Return the non-type erased version of this syntax node if it conforms to WithCodeBlockSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any WithModifiersSyntax).Type) -> (any WithModifiersSyntax)?
Return the non-type erased version of this syntax node if it conforms to WithModifiersSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any WithAttributesSyntax).Type) -> (any WithAttributesSyntax)?
Return the non-type erased version of this syntax node if it conforms to WithAttributesSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any WithStatementsSyntax).Type) -> (any WithStatementsSyntax)?
Return the non-type erased version of this syntax node if it conforms to WithStatementsSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any EffectSpecifiersSyntax).Type) -> (any EffectSpecifiersSyntax)?
Return the non-type erased version of this syntax node if it conforms to EffectSpecifiersSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any WithTrailingCommaSyntax).Type) -> (any WithTrailingCommaSyntax)?
Return the non-type erased version of this syntax node if it conforms to WithTrailingCommaSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any WithGenericParametersSyntax).Type) -> (any WithGenericParametersSyntax)?
Return the non-type erased version of this syntax node if it conforms to WithGenericParametersSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any WithOptionalCodeBlockSyntax).Type) -> (any WithOptionalCodeBlockSyntax)?
Return the non-type erased version of this syntax node if it conforms to WithOptionalCodeBlockSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any FreestandingMacroExpansionSyntax).Type) -> (any FreestandingMacroExpansionSyntax)?
Return the non-type erased version of this syntax node if it conforms to FreestandingMacroExpansionSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any BracedSyntax).Type) -> (any BracedSyntax)?
Return the non-type erased version of this syntax node if it conforms to BracedSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any DeclGroupSyntax).Type) -> (any DeclGroupSyntax)?
Return the non-type erased version of this syntax node if it conforms to DeclGroupSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func asProtocol(_: (any NamedDeclSyntax).Type) -> (any NamedDeclSyntax)?
Return the non-type erased version of this syntax node if it conforms to NamedDeclSyntax
. Otherwise return nil
. Note that this will incur an existential conversion.
func cast<S>(_ syntaxType: S.Type) -> S where S : SyntaxProtocol
Force-casts the current syntax node to a given specialized syntax type.
func children(viewMode: SyntaxTreeViewMode) -> SyntaxChildren
A sequence over the children of this node.
func debugDescription(includeTrivia: Bool = false, converter: SourceLocationConverter? = nil, mark: (any SyntaxProtocol)? = nil, indentString: String = "") -> String
Returns a summarized dump of this node.
func endLocation(converter: SourceLocationConverter, afterTrailingTrivia: Bool = false) -> SourceLocation
The ending location, in the provided file, of this Syntax node.
func firstToken(viewMode: SyntaxTreeViewMode) -> TokenSyntax?
Returns the first token node that is part of this syntax node.
func hash(into hasher: inout Hasher)
func `is`<S>(_ syntaxType: S.Type) -> Bool where S : SyntaxProtocol
Checks if the current syntax node can be cast to a given specialized syntax type.
func isProtocol(_: (any MissingNodeSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to MissingNodeSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any ParenthesizedSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to ParenthesizedSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any WithCodeBlockSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to WithCodeBlockSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any WithModifiersSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to WithModifiersSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any WithAttributesSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to WithAttributesSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any WithStatementsSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to WithStatementsSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any EffectSpecifiersSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to EffectSpecifiersSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any WithTrailingCommaSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to WithTrailingCommaSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any WithGenericParametersSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to WithGenericParametersSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any WithOptionalCodeBlockSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to WithOptionalCodeBlockSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any FreestandingMacroExpansionSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to FreestandingMacroExpansionSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any BracedSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to BracedSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any DeclGroupSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to DeclGroupSyntax
. Note that this will incur an existential conversion.
func isProtocol(_: (any NamedDeclSyntax).Type) -> Bool
Check whether the non-type erased version of this syntax node conforms to NamedDeclSyntax
. Note that this will incur an existential conversion.
func lastToken(viewMode: SyntaxTreeViewMode) -> TokenSyntax?
Returns the last token node that is part of this syntax node.
func nextToken(viewMode: SyntaxTreeViewMode) -> TokenSyntax?
Recursively walks through the tree to find the next token semantically after this node.
func node(at syntaxIdentifier: SyntaxIdentifier) -> Syntax?
If the node with the given syntaxIdentifier
is a (recursive) child of this node, return the node with that identifier.
func previousToken(viewMode: SyntaxTreeViewMode) -> TokenSyntax?
Recursively walks through the tree to find the token semantically before this node.
func sourceRange(converter: SourceLocationConverter, afterLeadingTrivia: Bool = true, afterTrailingTrivia: Bool = false) -> SourceRange
The source range, in the provided file, of this Syntax node.
func startLocation(converter: SourceLocationConverter, afterLeadingTrivia: Bool = true) -> SourceLocation
The starting location, in the provided file, of this Syntax node.
func token(at position: AbsolutePosition) -> TokenSyntax?
Find the syntax token at the given absolute position within this syntax node or any of its children.
func tokens(viewMode: SyntaxTreeViewMode) -> TokenSequence
Sequence of tokens that are part of this Syntax node.
func trimmed(matching filter: (TriviaPiece) -> Bool) -> Self
A copy of this node with pieces that match matching
trimmed from the leading trivia of the first token and trailing trivia of the last token.
func trimmedDescription(matching filter: (TriviaPiece) -> Bool) -> String
The description of this node with pieces that match matching
removed from the leading trivia of the first token and trailing trivia of the last token.
func with<T>(_ keyPath: WritableKeyPath<Self, T>, _ value: T) -> Self
Returns a new syntax node that has the child at keyPath
replaced by value
.
func write<Target>(to stream: inout Target) where Target : TextOutputStream
Prints the raw value of this node to the provided stream.
var byteRange: ByteSourceRange { get }
var byteSize: Int { get }
The textual byte length of this node including leading and trailing trivia.
var byteSizeAfterTrimmingTrivia: Int { get }
The textual byte length of this node excluding leading and trailing trivia.
var contentLength: SourceLength { get }
var firstToken: TokenSyntax? { get }
var index: SyntaxChildrenIndex { get }
The index of this node in a SyntaxChildren
collection.
var isImplicit: Bool { get }
When isImplicit is true, the syntax node doesn’t include any underlying tokens, e.g. an empty CodeBlockItemList.
var lastToken: TokenSyntax? { get }
var nextToken: TokenSyntax? { get }
var previousToken: TokenSyntax? { get }
var totalByteRange: ByteSourceRange { get }
The byte source range of this node including leading and trailing trivia.
var trimmedByteRange: ByteSourceRange { get }
The byte source range of this node excluding leading and trailing trivia.
func `as`<S>(_ syntaxType: S.Type) -> S? where S : SyntaxProtocol
Attempts to cast the current leaf syntax node to a different specified type.
func `as`(_ syntaxType: Syntax.Type) -> Syntax?
Attempts to upcast the current syntax node to Syntax
node.
func `as`(_ syntaxType: Self.Type) -> Self?
Casts the current syntax node to its own type.
func cast<S>(_ syntaxType: S.Type) -> S where S : SyntaxProtocol
Force-casts the current leaf syntax node to a different specified type.
func cast(_ syntaxType: Syntax.Type) -> Syntax
Force-cast the current syntax node to Syntax
node..
func cast(_ syntaxType: Self.Type) -> Self
Force-casts the current syntax node to its own type.
func detach() -> Self
func `is`<S>(_ syntaxType: S.Type) -> Bool where S : SyntaxProtocol
Checks if the current leaf syntax node can be cast to a different specified type.
func `is`(_ syntaxType: Syntax.Type) -> Bool
Checks if the current syntax node can be upcast to Syntax
node.
func `is`(_ syntaxType: Self.Type) -> Bool
Checks if the current syntax node can be cast to its own type.