summaryrefslogtreecommitdiffstats
path: root/lib.c
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2019-03-13 23:27:50 -0700
committerKaz Kylheku <kaz@kylheku.com>2019-03-13 23:39:17 -0700
commita470a6705f13b1d57cdcc865e77e11e7aa413e34 (patch)
tree7b9a966931a7cd84ed4c69d1dddbfa55c2f3c340 /lib.c
parent7aef72ae4fd0fcbe18acbbd876fed0aaf6bf87ee (diff)
downloadtxr-a470a6705f13b1d57cdcc865e77e11e7aa413e34.tar.gz
txr-a470a6705f13b1d57cdcc865e77e11e7aa413e34.tar.bz2
txr-a470a6705f13b1d57cdcc865e77e11e7aa413e34.zip
oop: make struct symbol supertype of all structs.
* lib.c (subtypep): If the supertype is struct, then return t if the subtype is the name of a struct type. * txr.1: Update the type graph to show the struct root, adding a note about it.
Diffstat (limited to 'lib.c')
-rw-r--r--lib.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib.c b/lib.c
index 06cd37c1..da8e0bf7 100644
--- a/lib.c
+++ b/lib.c
@@ -257,6 +257,8 @@ val subtypep(val sub, val sup)
return tnil(sub == str_s || sub == lit_s || sub == lstr_s);
} else if (sup == stream_s) {
return tnil(sub == stdio_stream_s);
+ } else if (sup == struct_s) {
+ return tnil(find_struct_type(sub));
} else {
val sub_struct = find_struct_type(sub);
val sup_struct = find_struct_type(sup);