DeclarationCollector

open class DeclarationCollector
extension DeclarationCollector: SyntaxVisitor

A Swift syntax visitor that collects declarations.

Create an instance of DeclarationCollector and pass it by reference when walking an AST created by SyntaxParser to collect any visited declarations:

import SwiftSyntax
import SwiftSemantics

let source = #"enum E {}"#

var collector = DeclarationCollector()
let tree = try SyntaxParser.parse(source: source)
tree.walk(&collector)

collector.enumerations.first?.name // "E"
  • The collected associated type declarations.

    Declaration

    Swift

    public private(set) var associatedTypes: [AssociatedType]
  • The collected class declarations.

    Declaration

    Swift

    public private(set) var classes: [Class]
  • The collected conditional compilation block declarations.

    Declaration

    Swift

    public private(set) var conditionalCompilationBlocks: [ConditionalCompilationBlock]
  • The collected deinitializer declarations.

    Declaration

    Swift

    public private(set) var deinitializers: [Deinitializer]
  • The collected enumeration declarations.

    Declaration

    Swift

    public private(set) var enumerations: [Enumeration]
  • The collected enumeration case declarations.

    Declaration

    Swift

    public private(set) var enumerationCases: [Enumeration.Case]
  • The collected extension declarations.

    Declaration

    Swift

    public private(set) var extensions: [Extension]
  • The collected function declarations.

    Declaration

    Swift

    public private(set) var functions: [Function]
  • The collected import declarations.

    Declaration

    Swift

    public private(set) var imports: [Import]
  • The collected initializer declarations.

    Declaration

    Swift

    public private(set) var initializers: [Initializer]
  • The collected operator declarations.

    Declaration

    Swift

    public private(set) var operators: [Operator]
  • The collected precedence group declarations.

    Declaration

    Swift

    public private(set) var precedenceGroups: [PrecedenceGroup]
  • The collected protocol declarations.

    Declaration

    Swift

    public private(set) var protocols: [Protocol]
  • The collected structure declarations.

    Declaration

    Swift

    public private(set) var structures: [Structure]
  • The collected subscript declarations.

    Declaration

    Swift

    public private(set) var subscripts: [Subscript]
  • The collected type alias declarations.

    Declaration

    Swift

    public private(set) var typealiases: [Typealias]
  • The collected variable declarations.

    Declaration

    Swift

    public private(set) var variables: [Variable]
  • Creates a new declaration collector.

    Declaration

    Swift

    public init()

SyntaxVisitor

  • Called when visiting an AssociatedtypeDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: AssociatedtypeDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting a ClassDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: ClassDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting a DeinitializerDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: DeinitializerDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting an EnumDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: EnumDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting an EnumCaseDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: EnumCaseDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting an ExtensionDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: ExtensionDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting a FunctionDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: FunctionDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting an IfConfigDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: IfConfigDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting an ImportDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: ImportDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting an InitializerDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: InitializerDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting an OperatorDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: OperatorDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting a PrecedenceGroupDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: PrecedenceGroupDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting a ProtocolDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: ProtocolDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting a SubscriptDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: SubscriptDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting a StructDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: StructDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting a TypealiasDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: TypealiasDeclSyntax) -> SyntaxVisitorContinueKind
  • Called when visiting a VariableDeclSyntax node

    Declaration

    Swift

    public func visit(_ node: VariableDeclSyntax) -> SyntaxVisitorContinueKind