summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--share/txr/stdlib/compiler.tl5
1 files changed, 4 insertions, 1 deletions
diff --git a/share/txr/stdlib/compiler.tl b/share/txr/stdlib/compiler.tl
index 65202e9e..21721ad6 100644
--- a/share/txr/stdlib/compiler.tl
+++ b/share/txr/stdlib/compiler.tl
@@ -1362,7 +1362,10 @@
(cond
((and (plusp olev)
(eq sym 'call)
- [all args constantp])
+ [all args constantp]
+ (let ((op (eval (car args))))
+ (or [%const-foldable% op]
+ (not (bindable op)))))
me.(compile oreg env (eval form)))
(t (tree-case (car args)
((op arg . more)