aboutsummaryrefslogtreecommitdiff
path: root/src/interp/compiler.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/compiler.boot')
-rw-r--r--src/interp/compiler.boot2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index 357e8564..201e925f 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -1162,6 +1162,8 @@ compHasFormat (pred is ["has",olda,b]) ==
b is ["SIGNATURE",op,sig,:.] =>
["HasSignature",a,
mkList [MKQ op,mkList [mkTypeForm type for type in sig]]]
+ b is ["Join",:l] or b is ["CATEGORY",.,:l] =>
+ ["AND",:[compHasFormat ["has",olda,c] for c in l]]
isCategoryForm(b,$e) => ["HasCategory",a,mkTypeForm b]
stackAndThrow('"Second argument to %1b must be a category, or a signature or an attribute",["has"])