diff options
-rw-r--r-- | stdlib/compiler.tl | 10 |
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 |