Table of Contents

Class WithStatementFact

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

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

Node SyntaxNodeId

The Identity of the statement.

Location SourceLocation

Where in the document the statement is.

Statement string

The keyword of the statement: one of the Tokens.

Flags WithStatementSemanticFlags

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.

IsValueKnown bool

Whether 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

WithStatementSemanticFlags

IsValueKnown

Whether the value of the target is known, as opposed to a value its type merely allows.

public bool IsValueKnown { get; init; }

Property Value

bool