Class InstructionListLoweringResult
- Namespace
- RDCore.SDK.Semantics.Instructions
- Assembly
- RDCore.SDK.dll
The result of Lower(StatementBlock, InstructionLoweringOptions, MemberKind?): the InstructionList lowering produced, and every compile error lowering found while producing it.
public sealed record InstructionListLoweringResult : IEquatable<InstructionListLoweringResult>
- Inheritance
-
InstructionListLoweringResult
- Implements
- Inherited Members
Constructors
InstructionListLoweringResult(InstructionList, ImmutableArray<VBCompileErrorInfo>)
The result of Lower(StatementBlock, InstructionLoweringOptions, MemberKind?): the InstructionList lowering produced, and every compile error lowering found while producing it.
public InstructionListLoweringResult(InstructionList InstructionList, ImmutableArray<VBCompileErrorInfo> Errors)
Parameters
InstructionListInstructionListAlways built, even when Errors is non-empty: every StatementNode in the body still gets exactly one Instruction, and an Jump/ JumpTable operand that did not resolve simply carries a
nulltarget rather than being left out. Whether to refuse to run a body with a non-empty Errors is a decision for whatever executes it, not for lowering.ErrorsImmutableArray<VBCompileErrorInfo>Every LabelNotDefined and DuplicateLabelDefinition lowering found. Empty when every label in the body is valid.
Properties
Errors
Every LabelNotDefined and DuplicateLabelDefinition lowering found. Empty when every label in the body is valid.
public ImmutableArray<VBCompileErrorInfo> Errors { get; init; }
Property Value
InstructionList
Always built, even when Errors is non-empty: every StatementNode in the
body still gets exactly one Instruction, and an Jump/
JumpTable operand that did not resolve simply carries a null
target rather than being left out. Whether to refuse to run a body with a non-empty
Errors is a decision for whatever executes it, not for lowering.
public InstructionList InstructionList { get; init; }