Table of Contents

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

InstructionList 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.

Errors ImmutableArray<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

ImmutableArray<VBCompileErrorInfo>

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; }

Property Value

InstructionList