aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog4
-rw-r--r--src/interp/compiler.boot6
2 files changed, 8 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 5dd46aed..f5dbea5a 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2009-05-09 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * interp/compiler.boot (compApplication): Tidy.
+
2009-05-05 Gabriel Dos Reis <gdr@cs.tamu.edu>
* algebra/op.spad.pamphlet (property$BasicOperator): Overload with
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