Skip to content

Latest commit

 

History

History
22 lines (19 loc) · 1.15 KB

ii.23.2.12-type.md

File metadata and controls

22 lines (19 loc) · 1.15 KB

II.23.2.12 Type

Type is encoded in signatures as follows (I1 is an abbreviation for ELEMENT_TYPE_I1, U1 is an abbreviation for ELEMENT_TYPE_U1, and so on; see II.23.1.16):

Type ::=
BOOLEAN | CHAR | I1 | U1 | I2 | U2 | I4 | U4 | I8 | U8 | R4 | R8 | I | U
| ARRAY Type ArrayShape (general array, see §II.23.2.13)
| CLASS TypeDefOrRefOrSpecEncoded
| FNPTR MethodDefSig
| FNPTR MethodRefSig
| GENERICINST (CLASS | VALUETYPE) TypeDefOrRefOrSpecEncoded GenArgCount Type*
| MVAR number
| OBJECT
| PTR CustomMod* Type
| PTR CustomMod* VOID
| STRING
| SZARRAY CustomMod* Type (single dimensional, zero-based array i.e., vector)
| VALUETYPE TypeDefOrRefOrSpecEncoded
| VAR number

The GenArgCount non-terminal is an unsigned integer value (compressed) specifying the number of generic arguments in this signature. The number non-terminal following MVAR or VAR is an unsigned integer value (compressed).