diff options
-rw-r--r-- | struct.c | 8 | ||||
-rw-r--r-- | txr.1 | 5 |
2 files changed, 9 insertions, 4 deletions
@@ -263,8 +263,12 @@ val super(val type) val stype = find_struct_type(type); if (!stype) no_such_struct(lit("super"), type); - return super(stype); - } else { + type = stype; + } else if (structp(type)) { + type = struct_type(type); + } + + { struct struct_type *st = coerce(struct struct_type *, cobj_handle(type, struct_type_s)); return st->super; @@ -18388,8 +18388,9 @@ has no supertype. The .meta type -must be either a struct type object, or else -a symbol which names a struct type. +argument must be either a struct type object, a +a symbol which names a struct type (which is resolved to that type), +or else a structure instance (which is resolved to its structure type). .coNP Function @ make-struct .synb |