Table of Contents

Class VBModuleSymbol

Namespace
RDCore.SDK.Model.Symbols
Assembly
RDCore.SDK.dll

An unbound symbol representing any type of module.

public abstract record VBModuleSymbol : Symbol, IEquatable<Symbol>, IEquatable<VBModuleSymbol>
Inheritance
VBModuleSymbol
Implements
Derived
Inherited Members

Constructors

VBModuleSymbol(Uri, Uri, string, ScopeKind, SymbolKindExt)

An unbound symbol representing any type of module.

protected VBModuleSymbol(Uri WorkspaceRoot, Uri ParentUri, string Name, ScopeKind Scope, SymbolKindExt Kind)

Parameters

WorkspaceRoot Uri

A Uri representing the absolute path to the library or project workspace.

ParentUri Uri

The Uri of the parent symbol.

Name string

The name of the module, as specified by its VB_Attribute.Name.

Scope ScopeKind

The allocation scope of the symbol.

Kind SymbolKindExt

A SymbolKind (extended, LSP-compliant) metadata value describing the kind of symbol.

Properties

Directives

The module-level directives this module was declared under.

public ModuleDirectives Directives { get; init; }

Property Value

ModuleDirectives

Members

This module's direct members — fields, procedures, properties, and any module-level Type or Enum declaration — in declaration order. Empty until a workspace-wide pass populates it (RDCore.SDK.Model.Types.Complex.IVBMemberOwnerType's same "carry it on the symbol" pattern VBUserDefinedTypeMemberSymbol.Members uses, just a second pass here instead of falling out of a single AST node's own children: a module's members are separate top-level declarations, not nested inside the module's own declaration).

public ImmutableArray<VBTypeMemberSymbol> Members { get; init; }

Property Value

ImmutableArray<VBTypeMemberSymbol>

Scope

The allocation scope of the symbol.

public ScopeKind Scope { get; init; }

Property Value

ScopeKind