summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2013-07-18 01:45:31 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2013-07-18 01:45:31 +0200
commitd5fdb49f7f94145da980287c92d20988e48c9780 (patch)
treeb25897c90f7fb9bdd3ad8a021cac9f07228a4f24
parent4286d25f0f050ef873e2043904de86b2a12d6285 (diff)
PREPARE-LAMBDA: Handle &REST arguments.
-rw-r--r--sb-eval2.lisp4
1 files changed, 3 insertions, 1 deletions
diff --git a/sb-eval2.lisp b/sb-eval2.lisp
index ccba6a9..e4529df 100644
--- a/sb-eval2.lisp
+++ b/sb-eval2.lisp
@@ -380,7 +380,9 @@
for vars = (lambda-binding-vars binding)
collect (prepare-form default-value new-context)
do (dolist (var vars)
- (context-add-env-lexical! new-context var))))
+ (context-add-env-lexical! new-context var))
+ finally (when restp
+ (context-add-env-lexical! new-context rest))))
(body* (prepare-progn body new-context))
(unbound (gensym)))
(macrolet ((handle-arguments (args env)