Allowing functions to return non scalar data requires copying or referencing returned data and making arrangements for later collection.
If functions are to be allowed to return non scalar data an abridged
temporaries allocator must be provided for the parser. The later collection
arrangement for the returned non scalar data will be made against the provided
allocator. Also, the
X1f4_A1_LEADCAST bit must be present in the
program parsing flags.
See Temporaries Allocator Construct.
See struct x1f4_a1_type.
See Procedural Language Interpreter Generation Flags.
The program parser will allow (upon
X1f4_A1_LEADCAST) intrinsic string
data returns and referable or copyable data returns. The latter are identified
as belonging to data types that allow multiple data references or that can copy
data, specifically, data types that set the
struct x1f4_datatype_type descriptions.
See struct x1f4_datatype_type.
See Referable Objects.
The object type, though does not fall in any of the enumerated categories, is also allowed for function returns when its type definition is included with the non declarable data type definitions array.
See The Object Type.
Only the intrinsic types and the types described by the
sidetype_set arrays in the
struct x1f4_a1_type parsing context
are considered for allowed return types.