Class SymbolDescriptor
A transport-friendly projection of one declared member Symbol. Declared types
travel as names, not resolved VBTypes — the environment host is the resolution authority.
public record SymbolDescriptor : IEquatable<SymbolDescriptor>
- Inheritance
-
SymbolDescriptor
- Implements
- Inherited Members
Properties
AccessModifier
The declared access modifier; Implicit when none was written.
public AccessModifier AccessModifier { get; init; }
Property Value
DeclaredTypeName
The declared type's name — from an As clause or a type-declaration character — or
null when there is none, or the type reference is not a simple name (a qualified name
or an array definition needs a later semantic pass).
public string? DeclaredTypeName { get; init; }
Property Value
Definitions
The declaration sites of this member, in source order — populated only when the same name is declared in more than one conditional-compilation branch. Empty for the common single-declaration case, in which Range/SelectionRange are the sole site. A consumer that does not support multi-branch symbols can ignore this and use Range.
public ImmutableArray<DefinitionDescriptor> Definitions { get; init; }
Property Value
External
Declare-statement metadata; null unless Kind is
ExternalProcedure or ExternalFunction.
public ExternalDescriptor? External { get; init; }
Property Value
Kind
Which kind of member symbol to reconstruct.
public SymbolDescriptorKind Kind { get; init; }
Property Value
Members
Members parented to this descriptor rather than the module: Enum constants and
user-defined-Type fields.
public ImmutableArray<SymbolDescriptor> Members { get; init; }
Property Value
Name
The member's identifier name.
public string Name { get; init; }
Property Value
Parameters
Parameters, for the procedure, function, property and event kinds.
public ImmutableArray<ParameterDescriptor> Parameters { get; init; }
Property Value
Range
The source span of the whole declaration — the primary site (the first branch) when the member has multiple Definitions.
public SourceRange Range { get; init; }
Property Value
Scope
The allocation scope the symbol is defined in.
public ScopeKind Scope { get; init; }
Property Value
SelectionRange
The source span to select when navigating to the symbol (typically its name token) — the primary site when the member has multiple Definitions.
public SourceRange SelectionRange { get; init; }