Class BoundCall
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
CallIndexExpressionNodeThe index expression that is the call.
ProcedureSymbolThe 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).BoundArgumentsImmutableArray<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
Call
The index expression that is the call.
public IndexExpressionNode Call { get; init; }
Property Value
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
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; }