From 3e973cf67af0dbfc18af6fa5f5e2a5c67e3b70d2 Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Tue, 16 Jul 2013 18:30:47 +0200 Subject: PREPARE-LAMBDA: Support &KEY ((:keyword var) ...) syntax. --- sb-eval2.lisp | 8 ++++++-- 1 file 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)) -- cgit v1.2.3