aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/compiler.boot6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index c45a5ce8..e51da828 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -706,8 +706,10 @@ compApplication(op,argl,m,T) ==
for x in argl for m in argml]
argTl = "failed" => nil
form:=
- atom T.expr and not (MEMQ(op,$formalArgList) or MEMQ(T.expr,$formalArgList)) =>
- emitLocalCallInsn(T.expr,[a.expr for a in argTl],e)
+ atom T.expr and
+ not (MEMQ(op,$formalArgList) or MEMQ(T.expr,$formalArgList)) and
+ null get(T.expr,"value",e) =>
+ emitLocalCallInsn(T.expr,[a.expr for a in argTl],e)
['call, ['applyFun, T.expr], :[a.expr for a in argTl]]
coerce([form, retm, e],resolve(retm,m))
op = 'elt => nil