summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--stdlib/compiler.tl10
1 files changed, 8 insertions, 2 deletions
diff --git a/stdlib/compiler.tl b/stdlib/compiler.tl
index d00e8d1e..3d89abed 100644
--- a/stdlib/compiler.tl
+++ b/stdlib/compiler.tl
@@ -2036,8 +2036,14 @@
,*(nthcdr pars.nfix
^(,*fix-arg-exprs ,apply-list-expr)))))
(lambda-too-many-args lm-expr))
- (when (or pars.rest apply-list-expr)
- (add ^(,(or pars.rest ign-1) ,apply-list-expr)))))
+ (cond
+ ((and pars.rest apply-list-expr)
+ (add ^(,pars.rest ,al-val)))
+ (pars.rest
+ ^(,pars.rest nil))
+ (apply-list-expr
+ (add ^(,ign-2 (if ,al-val
+ (lambda-excess-apply-list))))))))
((and fix-vals apply-list-expr)
(lambda-too-many-args lm-expr))
(apply-list-expr