Class ComparisonOperatorFact
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
NodeSyntaxNodeIdThe
Identityof the syntax node the operation is evaluated for.LocationSourceLocationWhere in the document the operation is.
OperatorstringThe operator: one of the
Tokensoperators.EffectiveTypeVBTypeThe effective type of the operation, if it has one.
IsValueKnownboolWhether every operand of the operation is known, as opposed to a value its type merely allows.
ErrorVBErrorInfoThe run-time error the operation raises. Only stated when the operands are known, or when their types alone guarantee it.
FlagsComparisonOperatorSemanticFlagsWhat is known of the operation.
ComparisonStringComparisonRulesHow the operation compares
Stringvalues 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
Flags
What is known of the operation.
public ComparisonOperatorSemanticFlags Flags { get; init; }