diff options
Diffstat (limited to 'src/interp/i-coerfn.boot')
-rw-r--r-- | src/interp/i-coerfn.boot | 7 |
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() |