diff options
author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2013-07-16 18:30:47 +0200 |
---|---|---|
committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2013-07-16 18:30:47 +0200 |
commit | 3e973cf67af0dbfc18af6fa5f5e2a5c67e3b70d2 (patch) | |
tree | 2c55be3b5bd8e8bcc29791858335273f56078198 | |
parent | 7d80fddca07fda51e3400e8b4dd917e96c4a8b71 (diff) |
PREPARE-LAMBDA: Support &KEY ((:keyword var) ...) syntax.
-rw-r--r-- | sb-eval2.lisp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sb-eval2.lisp b/sb-eval2.lisp index f153590..4097de4 100644 --- a/sb-eval2.lisp +++ b/sb-eval2.lisp @@ -458,7 +458,9 @@ (defun lambda-binding-vars (entry) (etypecase entry - (cons (list (first entry) + (cons (list (etypecase (first entry) + (cons (second (first entry))) + (symbol (first entry))) (if (cddr entry) (third entry) (gensym)))) @@ -478,7 +480,9 @@ (flet ((keywordify (sym) (intern (symbol-name sym) "KEYWORD"))) (etypecase entry - (cons (keywordify (first entry))) + (cons (etypecase (first entry) + (cons (first (first entry))) + (symbol (keywordify (first entry))))) (symbol (keywordify entry))))) (declaim (ftype (function (list context) eval-closure) prepare-lambda)) |