Table of Contents

Enum FixedAssignmentSemanticFlags

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

The semantic flags that can be attached to an LSet or RSet statement (MS-VBAL §5.4.3.6-7) operation.

[Flags]
public enum FixedAssignmentSemanticFlags

Fields

DestinationHoldsVariableLengthString = 16

The destination of a UserDefinedTypeCopy is a user-defined type that has a variable-length String member, at any depth.

👉 See SourceHoldsVariableLengthString.

Failed = 1

This operation produces a run-time error.

None = 0

No flags set.

SourceHoldsVariableLengthString = 8

The source of a UserDefinedTypeCopy is a user-defined type that has a variable-length String member, at any depth.

👉 MS-VBA copies the member's pointer, and leaves two records owning one allocation: which is why the statement is a known way to corrupt a VBA process. RD-VBA copies the value instead and corrupts nothing, but a program written against MS-VBA's behaviour is relying on something that it should be told about either way.

StringTarget = 2

The target is a String: the value is fitted into the width the target already has.

UserDefinedTypeCopy = 4

The target and the source are user-defined types: LSet copies one over the other as bytes.

Remarks

🧩 The statement itself says nothing about a program that is wrong in a way it can still run: the facts are flagged here, at analysis time, and it is for an analyzer (RDCore.Diagnostics, or any other) to decide whether one is worth a diagnostic.