Table of Contents

2.4.3 Meta and Advanced Types

Meta types are introspective data types that can reflectively describe the type system itself.

Warning

Meta types must not be exposed directly to RD-VBA source code. Doing so would break the language on a fundamental level.

🧩 Meta types provide language-level extension possibilities.

The type system includes and uses meta types, such as VBTypeDescValue; see RD-VBAL §3.0.3 Binding Contexts.

The meta types are:

Meta type Section
VBTypeDesc §2.4.3.1
VBMemberDesc §2.4.3.2
VBParameterDesc §2.4.3.3

2.4.3.1 VBTypeDesc

VBTypeDesc represents (describes) a VBType within the type system.

👉 A value of the VBTypeDesc meta type, a VBTypeDescValue, is used in the implementation of:

Both use a VBTypeDescValue because their semantics demand knowledge of a data type where a value is normally required.

Warning

Because a VBTypeDescValue is a data value that represents a data type, the implementation of both static and runtime semantics must account for the possibility of pattern-matching such a type descriptor by accident.

Note

Not implemented. None of the descriptor types other than VBTypeDesc are in use.

2.4.3.2 VBMemberDesc

VBMemberDesc is an abstract descriptor that represents (describes) any VBTypeMemberSymbol.

RD-VBAL groups the following member descriptors under VBMemberDesc:

Section Descriptor
§2.4.3.2.1 VBProcedureMemberDesc
§2.4.3.2.2 VBPropertyLetProcedureDesc
§2.4.3.2.3 VBPropertySetProcedureDesc
§2.4.3.2.4 VBReturningMemberDesc

2.4.3.2.1 VBProcedureMemberDesc

VBProcedureMemberDesc is a descriptor that represents (describes) any VBProcedureMemberSymbol.

2.4.3.2.2 VBPropertyLetProcedureDesc

VBPropertyLetProcedureDesc is a descriptor that represents (describes) a VBPropertyLetMemberSymbol.

2.4.3.2.3 VBPropertySetProcedureDesc

VBPropertySetProcedureDesc is a descriptor that represents (describes) a VBPropertySetMemberSymbol.

2.4.3.2.4 VBReturningMemberDesc

VBReturningMemberDesc is an abstract descriptor that represents (describes) any VBReturningMemberSymbol.

RD-VBAL groups the following descriptors under VBReturningMemberDesc:

Section Descriptor
§2.4.3.2.4.1 VBFunctionProcedureDesc
§2.4.3.2.4.2 VBPropertyGetProcedureDesc

2.4.3.2.4.1 VBFunctionProcedureDesc

VBFunctionProcedureDesc is a descriptor that represents (describes) a VBFunctionMemberSymbol.

2.4.3.2.4.2 VBPropertyGetProcedureDesc

VBPropertyGetProcedureDesc is a descriptor that represents (describes) a VBPropertyGetMemberSymbol.

2.4.3.3 VBParameterDesc

VBParameterDesc is a descriptor that represents (describes) a VBParameterSymbol.


⏮️ RD-VBAL §2.4.2 Non-intrinsic Types | ⏭️ RD-VBAL §2.4.4 Deferred Types