Struct LetCoercionStackFrame
Represents a LetCoercionRuntimeSemantics evaluation frame.
public readonly record struct LetCoercionStackFrame : IStackFrame<InputIndex>, IStackFrame, IEquatable<LetCoercionStackFrame>
- Implements
- Inherited Members
Remarks
👉 This mechanism allows detecting recursive let-coercion and avoiding uncontrolled re-entry.
Constructors
LetCoercionStackFrame(Uri, StaticSymbol, InputIndex, VBTypedValue, VBTypeDescValue)
Represents a LetCoercionRuntimeSemantics evaluation frame.
public LetCoercionStackFrame(Uri NodeUri, StaticSymbol OperatorSymbol, InputIndex OperandIndex, VBTypedValue SourceValue, VBTypeDescValue DestinationTypeDesc)
Parameters
NodeUriUriThe
Uriof the bound node being evaluated.OperatorSymbolStaticSymbolOperandIndexInputIndexEncodes the semantic index of the operand being evaluated.
SourceValueVBTypedValueThe source value being let-coerced in this frame.
DestinationTypeDescVBTypeDescValueDescribes the destination type of the let-coercion operation. The described data type must be unwrapped from the descriptor.
Remarks
👉 This mechanism allows detecting recursive let-coercion and avoiding uncontrolled re-entry.
Properties
DestinationTypeDesc
Describes the destination type of the let-coercion operation. The described data type must be unwrapped from the descriptor.
public VBTypeDescValue DestinationTypeDesc { get; init; }
Property Value
NodeUri
The Uri of the bound node being evaluated.
public Uri NodeUri { get; init; }
Property Value
OperandIndex
Encodes the semantic index of the operand being evaluated.
public InputIndex OperandIndex { get; init; }
Property Value
OperatorSymbol
public StaticSymbol OperatorSymbol { get; init; }
Property Value
SourceValue
The source value being let-coerced in this frame.
public VBTypedValue SourceValue { get; init; }