Class RuntimeFacts
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
ConversionsImmutableArray<ConversionFact>Every let-coercion (MS-VBAL 5.5.1.2) the code asks for, in the order the code was evaluated.
OperationsImmutableArray<OperatorFact>Every operation (MS-VBAL 5.6.9) the code performs, and every member it accesses (MemberAccessFact), in the order the code was evaluated.
StatementsImmutableArray<StatementFact>What the runtime semantics of the statements that establish facts of their own say of each, in the order the code was evaluated.
ErrorsImmutableArray<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.IsFullyAnalyzedboolWhether 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
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
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
None
Facts of a procedure that states none, and was evaluated in full.
public static RuntimeFacts None { get; }
Property Value
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
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; }