Class ByValArgumentExpressionNode
- Namespace
- RDCore.SDK.Model.AST.Expressions
- Assembly
- RDCore.SDK.dll
MS-VBAL 5.6.13.1 an argument written with the ByVal keyword
(argument-expression = ["byval"] expression), which flags that one argument as being passed by value whatever
the mechanism its parameter declares.
public sealed record ByValArgumentExpressionNode : ExpressionNode, IEquatable<SyntaxNode>, IExecutableNode, IEquatable<ExpressionNode>, IEquatable<ByValArgumentExpressionNode>
- Inheritance
-
ByValArgumentExpressionNode
- Implements
- Inherited Members
Remarks
The keyword is valid only in the argument list of an invocation of an external procedure: anywhere else the
argument list is invalid. That is something only the callee can say, so the node keeps the keyword in the tree, for
whatever is able to say it. An argument written this way is a value bound to nothing, which is what there being
nothing to alias means: it is never aliased to a ByRef parameter.
Constructors
ByValArgumentExpressionNode(SyntaxNodeId, SourceLocation, ExpressionNode)
MS-VBAL 5.6.13.1 an argument written with the ByVal keyword
(argument-expression = ["byval"] expression), which flags that one argument as being passed by value whatever
the mechanism its parameter declares.
public ByValArgumentExpressionNode(SyntaxNodeId Identity, SourceLocation Location, ExpressionNode Operand)
Parameters
IdentitySyntaxNodeIdA unique identifier for this specific syntax node.
LocationSourceLocationThe
Location(holds the documentUriand aRange) of the bound expression.OperandExpressionNodeThe argument's expression.
Remarks
The keyword is valid only in the argument list of an invocation of an external procedure: anywhere else the
argument list is invalid. That is something only the callee can say, so the node keeps the keyword in the tree, for
whatever is able to say it. An argument written this way is a value bound to nothing, which is what there being
nothing to alias means: it is never aliased to a ByRef parameter.
Properties
Operand
The argument's expression.
public ExpressionNode Operand { get; init; }