Enum ConversionSemanticFlags
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 | BinaryRightOperandCombines all values.
ArrayTarget = 1048576BankersRounding = 256This conversion uses the Banker's Rounding algorithm.
Probably semantically equivalent to Lossy, but kept separate for clarity. Semantic analysis issues both flags.
BinaryLeftOperand = 65536This conversion operation implicates the left-hand side (LHS) operand of a binary operator expression.
BinaryRightOperand = 131072This conversion operation implicates the right-hand side (RHS) operand of a binary operator expression.
ByteArrayOperand = 4194304ByteArrayTarget = 2097152CTypeAvailable = 16This conversion operation can be made explicit by inserting the appropriate
CTypedata type conversion function call.DateSerial = 1024This conversion operation involves a
DateSerial(VBDoubleValue) conversion from a VBDateValue.EmptyOperand = 4096This conversion operation implicates a VBEmptyValue operand.
ErrorOperand = 8192This conversion operation implicates a VBErrorValue operand.
Explicit = 1This conversion operation occurs via an explicit
CTypedata type conversion function, or an explicit let-coercion operator expression.Failed = 4This conversion operation produces a run-time error.
Implicit = 2This conversion operation does not occur via an explicit
CTypedata type conversion function.👉 MS-VBAL equivalent to
ConversionSemanticFlags.LetCoerced, but RD-VBAL introduces an explicit coercion operator that changes this.LetCoerced = 2This conversion implicates let-coercion semantics.
👉 Equivalent to Implicit.
Lossy = 128This conversion loses precision.
Narrowing = 64This conversion operation results in a narrower (smaller) data type.
NullOperand = 2048This conversion operation implicates a VBNullValue operand.
Numeric = 512This data type conversion operation evaluates to a VBNumericType.
ObjectOperand = 16384This conversion operation implicates a VBObjectValue operand.
Recursive = 8This conversion operation is recursive.
UnaryOperand = 32768This conversion operation implicates the operand of a unary operator expression.
UserDefinedTypeTarget = 262144This conversion operation has a VBUserDefinedTypeValue destination data type.
VariantTarget = 524288This conversion operation has a VBVariantValue destination data type.
Widening = 32This conversion operation results in a wider (larger) data type.