Class ArithmeticOperatorFact
An operation of an arithmetic operator (MS-VBAL 5.6.9.3).
public sealed record ArithmeticOperatorFact : OperatorFact, IEquatable<OperatorFact>, IEquatable<ArithmeticOperatorFact>
- Inheritance
-
ArithmeticOperatorFact
- 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
ArithmeticOperatorFact(SyntaxNodeId, SourceLocation, string, VBType?, bool, VBErrorInfo?, ArithmeticOperatorSemanticFlags)
An operation of an arithmetic operator (MS-VBAL 5.6.9.3).
public ArithmeticOperatorFact(SyntaxNodeId Node, SourceLocation Location, string Operator, VBType? EffectiveType, bool IsValueKnown, VBErrorInfo? Error, ArithmeticOperatorSemanticFlags Flags)
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.
FlagsArithmeticOperatorSemanticFlagsWhat is known of the operation.
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
Flags
What is known of the operation.
public ArithmeticOperatorSemanticFlags Flags { get; init; }