Table of Contents

Class ArithmeticOperatorFact

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

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

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 ArithmeticOperatorSemanticFlags

What 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; }

Property Value

ArithmeticOperatorSemanticFlags