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