Table of Contents

Enum ConversionSemanticFlags

Namespace
RDCore.SDK.Semantics.Flags
Assembly
RDCore.SDK.dll

The semantic flags that can be attached to a DataTypeConversion semantic operation.

[Flags]
public enum ConversionSemanticFlags

Fields

All = Explicit | Implicit | Failed | Recursive | CTypeAvailable | Widening | Narrowing | Lossy | BankersRounding | Numeric | DateSerial | NullOperand | EmptyOperand | UnaryOperand | BinaryLeftOperand | BinaryRightOperand

Combines all values.

ArrayTarget = 1048576
BankersRounding = 256

This conversion uses the Banker's Rounding algorithm.

Probably semantically equivalent to Lossy, but kept separate for clarity. Semantic analysis issues both flags.

BinaryLeftOperand = 65536

This conversion operation implicates the left-hand side (LHS) operand of a binary operator expression.

BinaryRightOperand = 131072

This conversion operation implicates the right-hand side (RHS) operand of a binary operator expression.

ByteArrayOperand = 4194304
ByteArrayTarget = 2097152
CTypeAvailable = 16

This conversion operation can be made explicit by inserting the appropriate CType data type conversion function call.

DateSerial = 1024

This conversion operation involves a DateSerial (VBDoubleValue) conversion from a VBDateValue.

EmptyOperand = 4096

This conversion operation implicates a VBEmptyValue operand.

ErrorOperand = 8192

This conversion operation implicates a VBErrorValue operand.

Explicit = 1

This conversion operation occurs via an explicit CType data type conversion function, or an explicit let-coercion operator expression.

Failed = 4

This conversion operation produces a run-time error.

Implicit = 2

This conversion operation does not occur via an explicit CType data type conversion function.

👉 MS-VBAL equivalent to ConversionSemanticFlags.LetCoerced, but RD-VBAL introduces an explicit coercion operator that changes this.

LetCoerced = 2

This conversion implicates let-coercion semantics.

👉 Equivalent to Implicit.

Lossy = 128

This conversion loses precision.

Narrowing = 64

This conversion operation results in a narrower (smaller) data type.

NullOperand = 2048

This conversion operation implicates a VBNullValue operand.

Numeric = 512

This data type conversion operation evaluates to a VBNumericType.

ObjectOperand = 16384

This conversion operation implicates a VBObjectValue operand.

Recursive = 8

This conversion operation is recursive.

UnaryOperand = 32768

This conversion operation implicates the operand of a unary operator expression.

UserDefinedTypeTarget = 262144

This conversion operation has a VBUserDefinedTypeValue destination data type.

VariantTarget = 524288

This conversion operation has a VBVariantValue destination data type.

Widening = 32

This conversion operation results in a wider (larger) data type.