aboutsummaryrefslogtreecommitdiff
path: root/src/interp/compiler.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2013-06-15 04:56:05 +0000
committerdos-reis <gdr@axiomatics.org>2013-06-15 04:56:05 +0000
commit11b080192468670b9b1a8f5cf9d5ff890195a3f2 (patch)
tree88837c19a422af6dd1e9b6609727f4b43db1ae70 /src/interp/compiler.boot
parent5bea876989c59d4e58237d5e3fd059a6b812df89 (diff)
downloadopen-axiom-11b080192468670b9b1a8f5cf9d5ff890195a3f2.tar.gz
Add DB parameter to extendsCategoryForm.
Diffstat (limited to 'src/interp/compiler.boot')
-rw-r--r--src/interp/compiler.boot7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index 60f2fc50..1d2921eb 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -327,9 +327,10 @@ finishLambdaExpression(expr is ['%lambda,vars,.],env) ==
compWithMappingMode(x,m is ["Mapping",m',:sl],oldE) ==
e := oldE
isFunctor x =>
+ db := currentDB e
if get(x,"modemap",$CategoryFrame) is [[[.,target,:argModeList],.],:.] and
- (and/[extendsCategoryForm("$",s,mode) for mode in argModeList for s in sl]
- ) and extendsCategoryForm("$",target,m') then
+ (and/[extendsCategoryForm(db,"$",s,mode) for mode in argModeList for s in sl]
+ ) and extendsCategoryForm(db,"$",target,m') then
return [['%function,x],m,e]
x is ["+->",:.] => compLambda(x,m,oldE)
if string? x then x := makeSymbol x
@@ -1843,7 +1844,7 @@ coerceHard(T,m) ==
string? T.expr and T.expr=m => [T.expr,m,$e]
isCategoryForm(m,$e) =>
$bootStrapMode => [T.expr,m,$e]
- extendsCategoryForm(T.expr,T.mode,m) => [T.expr,m,$e]
+ extendsCategoryForm(currentDB $e,T.expr,T.mode,m) => [T.expr,m,$e]
coerceExtraHard(T,m)
(m' is "$" and m = $functorForm) or (m' = $functorForm and m = "$") =>
[T.expr,m,$e]