DESCRIPTION¶
Returns info about the type of value
, as controlled by the flag.
If the optional argument flag
is not given, an array is returned whose first element is an integer denoting the data type, as defined in <lpctypes.h>. The second entry can contain additional information about value
.
If flag
flag is the number 0, only the first element of that array (i.e. the data type) is returned (as int). If flag
is 1, the second element is returned.
If value
is a closure, the flag
setting 2 lets the efun return the object of the closure (which for ‘lfun closures’ is the object the lfun is defined in, which is not necessarily the object the closure is bound to).
If value
is a struct, the flag
setting 2 lets the efun return the base name of the struct.
If value
is a lfun or context closure, the flag
setting 3 lets the efun return the name of the program the closure was defined in. For other closures, flag
setting 3 returns 0.
If value
is a lfun or context closure, the flag
setting 4 lets the efun return the name of the function. For other closures, flag
setting 4 returns 0.
For every other flag
setting, -1 is returned.
- The secondary information is:
- for mappings the width, ie the number of data items per key.
- for symbols and quoted arrays the number of quotes.
- for closures, the (internal) closure type, as defined in <lpctypes.h>.
- for strings 0 for shared strings, and non-0 for others.
- for structs the unique identifier string
- -1 for all other datatypes.
Misleading
This function seems to be due to frequent changes as the driver develops resp. is debugged.
HISTORY¶
- introduced (3.2@127) – in the 3.2 branch,
flag
could be of any type - changed (3.2.1@84) – added flag setting 2.
- changed (3.2.7) –
- added secondary string information.
get_type_info(closure,2)
now returns the object from a lambda closure or bound-lambda closure.
- changed (3.3.276) – added the secondary information for structs.
- changed (3.3.548) – added flag setting ‘3’ for lfun/context closures.
- changed (3.3.708) – added flag setting ‘4’ for lfun/context closures.