Class WithStatementFact
A With statement (MS-VBAL 5.4.2.21).
public sealed record WithStatementFact : StatementFact, IEquatable<StatementFact>, IEquatable<WithStatementFact>
- Inheritance
-
WithStatementFact
- Implements
- Inherited Members
Remarks
👉 Only the statements whose semantics establish something of their own state a fact: what most statements do is to convert and to operate, and those are facts of their own (ConversionFact, OperatorFact). One kind of statement is one derived record, so that a new kind does not grow the facts of every statement by a property. The run-time error a statement raises is a fact of the procedure's (Errors).
Constructors
WithStatementFact(SyntaxNodeId, SourceLocation, string, WithStatementSemanticFlags, bool)
A With statement (MS-VBAL 5.4.2.21).
public WithStatementFact(SyntaxNodeId Node, SourceLocation Location, string Statement, WithStatementSemanticFlags Flags, bool IsValueKnown)
Parameters
NodeSyntaxNodeIdThe
Identityof the statement.LocationSourceLocationWhere in the document the statement is.
StatementstringThe keyword of the statement: one of the
Tokens.FlagsWithStatementSemanticFlagsWhat is known of the statement: whether its target is an object, which is Set-assigned to the block variable, or a record, which is Let-assigned.
IsValueKnownboolWhether the value of the target is known, as opposed to a value its type merely allows.
Remarks
👉 Only the statements whose semantics establish something of their own state a fact: what most statements do is to convert and to operate, and those are facts of their own (ConversionFact, OperatorFact). One kind of statement is one derived record, so that a new kind does not grow the facts of every statement by a property. The run-time error a statement raises is a fact of the procedure's (Errors).
Properties
Flags
What is known of the statement: whether its target is an object, which is Set-assigned to the block variable, or a record, which is Let-assigned.
public WithStatementSemanticFlags Flags { get; init; }
Property Value
IsValueKnown
Whether the value of the target is known, as opposed to a value its type merely allows.
public bool IsValueKnown { get; init; }