summaryrefslogtreecommitdiffstats
path: root/struct.h
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2019-09-06 07:26:03 -0700
committerKaz Kylheku <kaz@kylheku.com>2019-09-06 07:26:03 -0700
commit78d6a6ed5cd8a141fdae8e7f85faeadbd5b177b2 (patch)
tree21e39400f7f201524f08ff7bdf71cdb17dfaa4c0 /struct.h
parent1a444721869bca8f94f1a5370b9d177444e35ea8 (diff)
downloadtxr-78d6a6ed5cd8a141fdae8e7f85faeadbd5b177b2.tar.gz
txr-78d6a6ed5cd8a141fdae8e7f85faeadbd5b177b2.tar.bz2
txr-78d6a6ed5cd8a141fdae8e7f85faeadbd5b177b2.zip
subtypep: structs with car or length method are sequences.
* lib.c (subtypep): For the sequence supertype, check whether the subtype is a structure that has a length or car method, returning t if so. * struct.c (get_special_slot_by_type): New function. * struct.h (get_special_slot_by_type): Declared. * txr.1: Add <structures with cars or length methods> to the type hierarchy diagram.
Diffstat (limited to 'struct.h')
-rw-r--r--struct.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/struct.h b/struct.h
index 385d8dd4..1850814e 100644
--- a/struct.h
+++ b/struct.h
@@ -87,5 +87,6 @@ val static_slot_types(val slot);
val slot_type_reg(val slot, val strct);
val static_slot_type_reg(val slot, val strct);
val get_special_slot(val obj, enum special_slot spidx);
+val get_special_slot_by_type(val stype, enum special_slot spidx);
INLINE int obj_struct_p(val obj) { return obj->co.ops == &struct_inst_ops; }
void struct_init(void);