ArrayExprSyntax
An array literal.
struct ArrayExprSyntaxChildren
leftSquare:[elements:ArrayElementListSyntaxrightSquare:]
An array literal.
struct ArrayExprSyntaxleftSquare: [
elements: ArrayElementListSyntax
rightSquare: ]
import SwiftSyntaxA library for working with Swift code.
struct ArrayElementListSyntaxstruct ExprSyntaxprotocol ExprSyntaxProtocol : SyntaxProtocolProtocol to which all ExprSyntax nodes conform.
struct MissingExprSyntaxIn case the source code is missing an expression, this node stands in place of the missing expression.
struct ArrowExprSyntaxThe arrow when a type is used at a position that syntactically expectes an expression.
struct AsExprSyntaxThe cast of an expressison to a different type.
struct AssignmentExprSyntaxstruct AwaitExprSyntaxstruct BinaryOperatorExprSyntaxAn operator like + or -.
struct BooleanLiteralExprSyntaxstruct BorrowExprSyntaxstruct ClosureExprSyntaxstruct ConsumeExprSyntaxstruct CopyExprSyntaxstruct DeclReferenceExprSyntaxstruct DictionaryExprSyntaxA dictionary literal
struct DiscardAssignmentExprSyntaxA _ that discards a value inside an assignment.
struct EditorPlaceholderExprSyntaxstruct FloatLiteralExprSyntaxstruct ForceUnwrapExprSyntaxstruct FunctionCallExprSyntaxstruct GenericSpecializationExprSyntaxstruct IfExprSyntaxstruct InOutExprSyntaxAn expression prefixed with & to pass an argument to an inout parameter.
struct InfixOperatorExprSyntaxAn infix operator call like 1 + 2.
struct IntegerLiteralExprSyntaxstruct IsExprSyntaxChecks if an expression is of a given type.
struct KeyPathExprSyntaxA key path.
struct MacroExpansionExprSyntaxThe expansion of a freestanding macro in a position that expects an expression.
struct MemberAccessExprSyntaxAn expression that access a member like a function or a property.
struct NilLiteralExprSyntaxstruct OptionalChainingExprSyntaxstruct PackElementExprSyntaxA pack element expression spelled with each.
struct PackExpansionExprSyntaxA pack expansion expression spelled with repeat.
struct PatternExprSyntaxstruct PostfixIfConfigExprSyntaxstruct PostfixOperatorExprSyntaxstruct PrefixOperatorExprSyntaxA prefix operator applied to a value.
struct RegexLiteralExprSyntaxstruct SequenceExprSyntaxA flat list of expressions before operator folding using the SwiftOperators library.
struct SimpleStringLiteralExprSyntaxA simple string that can’t contain string interpolation and cannot have raw string delimiters.
struct StringLiteralExprSyntaxA string literal.
struct SubscriptCallExprSyntaxstruct SuperExprSyntaxstruct SwitchExprSyntaxA switch expression.
struct TernaryExprSyntaxThe ternary operator with operator precedences resolved.
struct TryExprSyntaxAn expression prefixed with try.
struct TupleExprSyntaxstruct TypeExprSyntaxstruct UnresolvedAsExprSyntaxThe as keyword without any operands.
struct UnresolvedIsExprSyntaxThe is keyword without any operands.
struct UnresolvedTernaryExprSyntaxThe middle section of a ternary operator between ? and :.
protocol CustomDebugStringConvertibleA type with a customized textual representation suitable for debugging purposes.
protocol CustomReflectableA type that explicitly supplies its own mirror.
protocol CustomStringConvertibleA type with a customized textual representation.
protocol EquatableA type that can be compared for value equality.
protocol Hashable : EquatableA type that can be hashed into a Hasher to produce an integer hash value.
protocol SendableA 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 : HashableProtocol that provides a common Hashable implementation for all syntax nodes
protocol SyntaxProtocol : CustomDebugStringConvertible, CustomReflectable, CustomStringConvertible, Sendable, TextOutputStreamableProvide common functionality for specialized syntax nodes. Extend this protocol to provide common functionality for all syntax nodes.
protocol TextOutputStreamableA source of text-streaming operations.
protocol _LeafExprSyntaxNodeProtocol : ExprSyntaxProtocolProtocol 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, _ unexpectedBeforeLeftSquare: UnexpectedNodesSyntax? = nil, leftSquare: TokenSyntax = .leftSquareToken(), _ unexpectedBetweenLeftSquareAndElements: UnexpectedNodesSyntax? = nil, elements: ArrayElementListSyntax, _ unexpectedBetweenElementsAndRightSquare: UnexpectedNodesSyntax? = nil, rightSquare: TokenSyntax = .rightSquareToken(), _ unexpectedAfterRightSquare: UnexpectedNodesSyntax? = nil, trailingTrivia: Trivia? = nil) static let structure: SyntaxNodeStructurelet _syntaxNode: Syntaxvar elements: ArrayElementListSyntax { get set }var leftSquare: TokenSyntax { get set }var rightSquare: TokenSyntax { get set }var unexpectedAfterRightSquare: UnexpectedNodesSyntax? { get set }var unexpectedBeforeLeftSquare: UnexpectedNodesSyntax? { get set }var unexpectedBetweenElementsAndRightSquare: UnexpectedNodesSyntax? { get set }var unexpectedBetweenLeftSquareAndElements: UnexpectedNodesSyntax? { get set }init(leadingTrivia: Trivia? = nil, _ unexpectedBeforeLeftSquareBracket: UnexpectedNodesSyntax? = nil, leftSquareBracket: TokenSyntax = .leftSquareToken(), _ unexpectedBetweenLeftSquareBracketAndElements: UnexpectedNodesSyntax? = nil, elements: ArrayElementListSyntax, _ unexpectedBetweenElementsAndRightSquareBracket: UnexpectedNodesSyntax? = nil, rightSquareBracket: TokenSyntax = .rightSquareToken(), _ unexpectedAfterRightSquareBracket: UnexpectedNodesSyntax? = nil, trailingTrivia: Trivia? = nil) var leftSquareBracket: TokenSyntax { get set }var rightSquareBracket: TokenSyntax { get set }var unexpectedAfterRightSquareBracket: UnexpectedNodesSyntax? { get set }var unexpectedBeforeLeftSquareBracket: UnexpectedNodesSyntax? { get set }var unexpectedBetweenElementsAndRightSquareBracket: UnexpectedNodesSyntax? { get set }var unexpectedBetweenLeftSquareBracketAndElements: UnexpectedNodesSyntax? { get set }func addElement(_ element: ArrayElementSyntax) -> ArrayExprSyntax Adds the provided element to the node’s elements collection.
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 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 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 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`(_ syntaxType: ExprSyntax.Type) -> ExprSyntax? Attempts to upcast the current syntax node to its base node type (ExprSyntax).
func cast(_ syntaxType: ExprSyntax.Type) -> ExprSyntax Force-upcast the current syntax node to its base node type (ExprSyntax).
func detach() -> Self func `is`(_ syntaxType: ExprSyntax.Type) -> Bool Checks if the current syntax node can be upcast to its base node type (ExprSyntax).
import SwiftSyntaxBuilderSwiftSyntaxBuilder is a tool for generating Swift code in a convenient way using result builders.
init(expressions: [ExprSyntax]) init(leadingTrivia: Trivia? = nil, unexpectedBeforeLeftSquare: UnexpectedNodesSyntax? = nil, leftSquare: TokenSyntax = .leftSquareToken(), unexpectedBetweenLeftSquareAndElements: UnexpectedNodesSyntax? = nil, unexpectedBetweenElementsAndRightSquare: UnexpectedNodesSyntax? = nil, rightSquare: TokenSyntax = .rightSquareToken(), unexpectedAfterRightSquare: UnexpectedNodesSyntax? = nil, @ArrayElementListBuilder elementsBuilder: () throws -> ArrayElementListSyntax, trailingTrivia: Trivia? = nil) rethrows A convenience initializer that allows initializing syntax collections using result builders
init(leadingTrivia: Trivia? = nil, unexpectedBeforeLeftSquareBracket: UnexpectedNodesSyntax? = nil, leftSquareBracket: TokenSyntax = .leftSquareToken(), unexpectedBetweenLeftSquareBracketAndElements: UnexpectedNodesSyntax? = nil, unexpectedBetweenElementsAndRightSquareBracket: UnexpectedNodesSyntax? = nil, rightSquareBracket: TokenSyntax = .rightSquareToken(), unexpectedAfterRightSquareBracket: UnexpectedNodesSyntax? = nil, @ArrayElementListBuilder elementsBuilder: () throws -> ArrayElementListSyntax, trailingTrivia: Trivia? = nil) rethrows