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.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]