summaryrefslogtreecommitdiffstats
path: root/stdlib
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/compiler.tl5
1 files changed, 4 insertions, 1 deletions
diff --git a/stdlib/compiler.tl b/stdlib/compiler.tl
index 087ea283..7ab25be3 100644
--- a/stdlib/compiler.tl
+++ b/stdlib/compiler.tl
@@ -1391,7 +1391,10 @@
(let ((op (safe-const-eval (car args))))
(or [%const-foldable% op]
(not (bindable op)))))
- me.(compile oreg env (safe-const-reduce form)))
+ (let ((crform (safe-const-reduce form)))
+ (if (eq crform form)
+ me.(comp-fun-form oreg env crform)
+ me.(compile oreg env crform))))
(t (tree-case (car args)
((op arg . more)
(caseq op