Table of Contents

Class ComparisonOperatorFact

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

An operation of a relational operator (MS-VBAL 5.6.9.5).

public sealed record ComparisonOperatorFact : OperatorFact, IEquatable<OperatorFact>, IEquatable<ComparisonOperatorFact>
Inheritance
ComparisonOperatorFact
Implements
Inherited Members

Remarks

👉 One family of operators is one derived record, so that a new family does not grow the facts of every operation by a property. The conversions of the operands of the operation are facts of their own (ConversionFact), at OperatorOperand. A fact is only stated when it is true of the code: see ConversionFact.

Constructors

ComparisonOperatorFact(SyntaxNodeId, SourceLocation, string, VBType?, bool, VBErrorInfo?, ComparisonOperatorSemanticFlags, StringComparisonRules)

An operation of a relational operator (MS-VBAL 5.6.9.5).

public ComparisonOperatorFact(SyntaxNodeId Node, SourceLocation Location, string Operator, VBType? EffectiveType, bool IsValueKnown, VBErrorInfo? Error, ComparisonOperatorSemanticFlags Flags, StringComparisonRules Comparison)

Parameters

Node SyntaxNodeId

The Identity of the syntax node the operation is evaluated for.

Location SourceLocation

Where in the document the operation is.

Operator string

The operator: one of the Tokens operators.

EffectiveType VBType

The effective type of the operation, if it has one.

IsValueKnown bool

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

Error VBErrorInfo

The run-time error the operation raises. Only stated when the operands are known, or when their types alone guarantee it.

Flags ComparisonOperatorSemanticFlags

What is known of the operation.

Comparison StringComparisonRules

How the operation compares String values where it is evaluated.

Remarks

👉 One family of operators is one derived record, so that a new family does not grow the facts of every operation by a property. The conversions of the operands of the operation are facts of their own (ConversionFact), at OperatorOperand. A fact is only stated when it is true of the code: see ConversionFact.

Properties

Comparison

How the operation compares String values where it is evaluated.

public StringComparisonRules Comparison { get; init; }

Property Value

StringComparisonRules

Flags

What is known of the operation.

public ComparisonOperatorSemanticFlags Flags { get; init; }

Property Value

ComparisonOperatorSemanticFlags