Table of Contents

Class RuntimeFacts

Namespace
RDCore.SDK.Semantics.Facts
Assembly
RDCore.SDK.dll

What the language core states about the code of one procedure when it is evaluated rather than run: the conversions the code asks for, the operations it performs, what its statements do, and the run-time errors it raises.

public sealed record RuntimeFacts : IEquatable<RuntimeFacts>
Inheritance
RuntimeFacts
Implements
Inherited Members

Remarks

A fact is about the code, never about a run of it: it is stated only when it is true of the code however the procedure is called (ConversionFact). Every fact is implicitly "when this line runs": whether a line can run at all is a fact of its own, which a pass over the code paths states.

A model whose Runtime is null has not been evaluated yet. That is not the same as a model that was evaluated and has no facts.

Constructors

RuntimeFacts(ImmutableArray<ConversionFact>, ImmutableArray<OperatorFact>, ImmutableArray<StatementFact>, ImmutableArray<VBErrorInfo>, bool)

What the language core states about the code of one procedure when it is evaluated rather than run: the conversions the code asks for, the operations it performs, what its statements do, and the run-time errors it raises.

public RuntimeFacts(ImmutableArray<ConversionFact> Conversions, ImmutableArray<OperatorFact> Operations, ImmutableArray<StatementFact> Statements, ImmutableArray<VBErrorInfo> Errors, bool IsFullyAnalyzed)

Parameters

Conversions ImmutableArray<ConversionFact>

Every let-coercion (MS-VBAL 5.5.1.2) the code asks for, in the order the code was evaluated.

Operations ImmutableArray<OperatorFact>

Every operation (MS-VBAL 5.6.9) the code performs, and every member it accesses (MemberAccessFact), in the order the code was evaluated.

Statements ImmutableArray<StatementFact>

What the runtime semantics of the statements that establish facts of their own say of each, in the order the code was evaluated.

Errors ImmutableArray<VBErrorInfo>

Every run-time error an instruction of the procedure raises whenever it runs, in the order the code was evaluated: at most one an instruction, because an instruction stops at the first error it raises. The error of a conversion or an operation is also the error of the instruction it is part of, and so is here too; an error the code raises for itself (Error) is a VBApplicationErrorInfo, and every other one is a VBRuntimeErrorInfo.

IsFullyAnalyzed bool

Whether every instruction of the procedure was evaluated. It is false when the evaluation of an instruction failed for a reason that is not the code's: what the facts state is true, and the facts there are are not all there are.

Remarks

A fact is about the code, never about a run of it: it is stated only when it is true of the code however the procedure is called (ConversionFact). Every fact is implicitly "when this line runs": whether a line can run at all is a fact of its own, which a pass over the code paths states.

A model whose Runtime is null has not been evaluated yet. That is not the same as a model that was evaluated and has no facts.

Properties

Conversions

Every let-coercion (MS-VBAL 5.5.1.2) the code asks for, in the order the code was evaluated.

public ImmutableArray<ConversionFact> Conversions { get; init; }

Property Value

ImmutableArray<ConversionFact>

Errors

Every run-time error an instruction of the procedure raises whenever it runs, in the order the code was evaluated: at most one an instruction, because an instruction stops at the first error it raises. The error of a conversion or an operation is also the error of the instruction it is part of, and so is here too; an error the code raises for itself (Error) is a VBApplicationErrorInfo, and every other one is a VBRuntimeErrorInfo.

public ImmutableArray<VBErrorInfo> Errors { get; init; }

Property Value

ImmutableArray<VBErrorInfo>

IsFullyAnalyzed

Whether every instruction of the procedure was evaluated. It is false when the evaluation of an instruction failed for a reason that is not the code's: what the facts state is true, and the facts there are are not all there are.

public bool IsFullyAnalyzed { get; init; }

Property Value

bool

None

Facts of a procedure that states none, and was evaluated in full.

public static RuntimeFacts None { get; }

Property Value

RuntimeFacts

Operations

Every operation (MS-VBAL 5.6.9) the code performs, and every member it accesses (MemberAccessFact), in the order the code was evaluated.

public ImmutableArray<OperatorFact> Operations { get; init; }

Property Value

ImmutableArray<OperatorFact>

Statements

What the runtime semantics of the statements that establish facts of their own say of each, in the order the code was evaluated.

public ImmutableArray<StatementFact> Statements { get; init; }

Property Value

ImmutableArray<StatementFact>