aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/i-coerfn.boot7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/interp/i-coerfn.boot b/src/interp/i-coerfn.boot
index fa8eaeb6..1dd78d14 100644
--- a/src/interp/i-coerfn.boot
+++ b/src/interp/i-coerfn.boot
@@ -431,9 +431,12 @@ Expr2Up(u,source is [Expr,S], target is [.,var,T]) ==
u = '_$fromCoerceable_$ => canCoerce(source, T)
kernelFunc := getFunctionFromDomain("kernels", source, [source])
kernelDom := ['Kernel, source]
- nameFunc := getFunctionFromDomain("name", kernelDom, [kernelDom])
+ operatorFunc := getFunctionFromDomain("operator",kernelDom,[kernelDom])
+ bopDom := ["BasicOperator"]
+ nameFunc := getFunctionFromDomain("name", bopDom, [bopDom])
kernels := SPADCALL(u,kernelFunc)
- v1 := [SPADCALL(kernel, nameFunc) for kernel in kernels]
+ v1 := [SPADCALL(SPADCALL(kernel, operatorFunc),nameFunc)
+ for kernel in kernels]
not member(var, v1) => coercionFailure()