From 01ee31f560d8ae13ea2518329a7a3ba55aad8150 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Tue, 18 Jun 2013 06:31:41 +0000 Subject: * interp/compiler.boot (compHasFormat): Take a DB parameter. Adjust callers. * interp/define.boot (ICformat): Likewise. * interp/lisplib.boot (predicateBitIndex): Likewise. (predicateBitRef): Likewise. (transHasCode): Likewise. --- src/interp/compiler.boot | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/interp/compiler.boot') diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot index 1d2921eb..e070e214 100644 --- a/src/interp/compiler.boot +++ b/src/interp/compiler.boot @@ -1349,12 +1349,12 @@ compElt(form,m,E) == compHas: (%Form,%Mode,%Env) -> %Maybe %Triple compHas(pred is ["has",a,b],m,e) == e := chaseInferences(pred,e) - predCode := compHasFormat(pred,e) + predCode := compHasFormat(currentDB e,pred,e) coerce([predCode,$Boolean,e],m) --used in various other places to make the discrimination -compHasFormat(pred is ["has",olda,b],e) == +compHasFormat(db,pred is ["has",olda,b],e) == argl := $form.args formals := take(#argl,$FormalMapVariableList) a := applySubst(pairList(formals,argl),olda) @@ -1365,7 +1365,7 @@ compHasFormat(pred is ["has",olda,b],e) == ["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],e) for c in l]] + ["AND",:[compHasFormat(db,["has",olda,c],e) for c in l]] isCategoryForm(b,e) => ["HasCategory",a,optimize! mkTypeForm b] stackAndThrow('"Second argument to %1b must be a category, or a signature or an attribute",["has"]) -- cgit v1.2.3