diff options
-rw-r--r-- | share/txr/stdlib/compiler.tl | 5 |
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) |