Table of Contents

Class DebugStatementNode

Namespace
RDCore.SDK.Model.AST.Statements
Assembly
RDCore.SDK.dll

A statement against the Debug object — Debug.Print or Debug.Assert.

public abstract record DebugStatementNode : StatementNode, IEquatable<SyntaxNode>, IExecutableNode, IEquatable<StatementNode>, IEquatable<DebugStatementNode>
Inheritance
DebugStatementNode
Implements
Derived
Inherited Members

Remarks

These parse as ordinary qualified call statements and are recognized as their own node afterwards, because they are the only statements whose presence in a compiled program depends on the build: lowering leaves them out entirely when the DEBUG conditional compilation constant is false, so nothing about them survives into a release build's instructions. A qualified call that is indistinguishable from every other qualified call cannot be left out that way — which is the whole reason this node exists rather than a CallStatementNode that the runtime pattern-matches on the spelling of its owner.

Debug is not part of MS-VBAL's standard library (§6.1 has no such module or class): it comes from the host's own development environment, and it has exactly these two members. The object's symbol is synthesized to match — see StdLibSymbolProvider.

Constructors

DebugStatementNode(SyntaxNodeId, SourceLocation, ImmutableArray<SyntaxNode>)

A statement against the Debug object — Debug.Print or Debug.Assert.

protected DebugStatementNode(SyntaxNodeId Identity, SourceLocation SourceLocation, ImmutableArray<SyntaxNode> Children)

Parameters

Identity SyntaxNodeId

A unique identifier for this specific syntax node.

SourceLocation SourceLocation

The document location (Uri+Range) of the statement.

Children ImmutableArray<SyntaxNode>

The statement's own operands.

Remarks

These parse as ordinary qualified call statements and are recognized as their own node afterwards, because they are the only statements whose presence in a compiled program depends on the build: lowering leaves them out entirely when the DEBUG conditional compilation constant is false, so nothing about them survives into a release build's instructions. A qualified call that is indistinguishable from every other qualified call cannot be left out that way — which is the whole reason this node exists rather than a CallStatementNode that the runtime pattern-matches on the spelling of its owner.

Debug is not part of MS-VBAL's standard library (§6.1 has no such module or class): it comes from the host's own development environment, and it has exactly these two members. The object's symbol is synthesized to match — see StdLibSymbolProvider.