Table of Contents

Class BoundCall

Namespace
RDCore.SDK.Semantics.Binding
Assembly
RDCore.SDK.dll

A call of a procedure the name before its argument list resolves to (MS-VBAL §5.6.13): a Sub, a Function or a Property Get of the workspace or of a library, by its bare name.

public sealed record BoundCall : BoundNode, IEquatable<BoundNode>, IEquatable<BoundCall>
Inheritance
BoundCall
Implements
Inherited Members

Remarks

The binding is the resolution of the callee, made once, and of how each argument is passed (BoundArgument): which parameter it is given to, by reference or by value with the plan of its coercion, collected into a ParamArray, or omitted. What only the call can decide - whether a variable is of the parameter's type, what a Variant holds - is the call's, each time it is made.

Constructors

BoundCall(IndexExpressionNode, Symbol, ImmutableArray<BoundArgument>?)

A call of a procedure the name before its argument list resolves to (MS-VBAL §5.6.13): a Sub, a Function or a Property Get of the workspace or of a library, by its bare name.

public BoundCall(IndexExpressionNode Call, Symbol Procedure, ImmutableArray<BoundArgument>? BoundArguments = null)

Parameters

Call IndexExpressionNode

The index expression that is the call.

Procedure Symbol

The procedure called, named bare or through the project or the procedural module it is a member of (§5.6.12) - VBA.Len(s), Module1.Total(1).

BoundArguments ImmutableArray<BoundArgument>?

The argument of each parameter of Procedure, in order; null when the arguments do not map to its parameters, which the call reports when it is made.

Remarks

The binding is the resolution of the callee, made once, and of how each argument is passed (BoundArgument): which parameter it is given to, by reference or by value with the plan of its coercion, collected into a ParamArray, or omitted. What only the call can decide - whether a variable is of the parameter's type, what a Variant holds - is the call's, each time it is made.

Properties

BoundArguments

The argument of each parameter of Procedure, in order; null when the arguments do not map to its parameters, which the call reports when it is made.

public ImmutableArray<BoundArgument>? BoundArguments { get; init; }

Property Value

ImmutableArray<BoundArgument>?

Call

The index expression that is the call.

public IndexExpressionNode Call { get; init; }

Property Value

IndexExpressionNode

Procedure

The procedure called, named bare or through the project or the procedural module it is a member of (§5.6.12) - VBA.Len(s), Module1.Total(1).

public Symbol Procedure { get; init; }

Property Value

Symbol

ResultType

The declared type of the call, when it is not the type Procedure declares: Abs, Int and Fix of a numeric value are of the value's declared type (ArgumentTypedFunctions), and what the call returns is a value of it, not a Variant that holds one. null for a call of the type its procedure declares.

public VBType? ResultType { get; init; }

Property Value

VBType