aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2011-09-06 22:33:36 +0000
committerdos-reis <gdr@axiomatics.org>2011-09-06 22:33:36 +0000
commit1fed226a5d6875b82388a36c6edfd0cb37474f34 (patch)
treeecd00ec0f56e10a45c0ad70df1f32fac31c27521 /src/interp
parent2f2f19f2d1cd9fd580f8ec719a26473defabce8f (diff)
downloadopen-axiom-1fed226a5d6875b82388a36c6edfd0cb37474f34.tar.gz
* interp/define.boot (compDefineFunctor1): Set
dbConstructorModemap before compiling functor body.
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/define.boot8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 7a1fe01b..23f1bef6 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -1377,6 +1377,10 @@ compDefineFunctor1(df is ['DEF,form,signature,nils,body],
parSignature:= applySubst($pairlis,signature')
parForm:= applySubst($pairlis,form)
+ -- 3. give operator a 'modemap property
+ modemap := [[parForm,:parSignature],[true,$op]]
+ dbConstructorModemap(db) := modemap
+
-- (3.1) now make a list of the functor's local parameters; for
-- domain D in argl,check its signature: if domain, its type is Join(A1,..,An);
-- in this case, D is replaced by D1,..,Dn (gensyms) which are set
@@ -1411,9 +1415,7 @@ compDefineFunctor1(df is ['DEF,form,signature,nils,body],
augmentLisplibModemapsFromFunctor(parForm,operationAlist,parSignature)
reportOnFunctorCompilation()
- -- 5. give operator a 'modemap property
- modemap := [[parForm,:parSignature],[true,op']]
- dbConstructorModemap(constructorDB op') := modemap
+ -- 5.
$lisplibCategory := modemap.mmTarget
dbPrincipals(db) := getParentsFor(db,$FormalMapVariableList,$lisplibCategory)
dbAncestors(db) := computeAncestorsOf($form,nil)