X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fearly-setf.lisp;h=d1841334ebe7519fb6938e7c892c623e94fd93f2;hb=f2847d6ed16e60390d000410d36ec7fb2570cdaf;hp=c55cf6aa69d20f438f7408688c65519963cb5484;hpb=4898ef32c639b1c7f4ee13a5ba566ce6debd03e6;p=sbcl.git diff --git a/src/code/early-setf.lisp b/src/code/early-setf.lisp index c55cf6a..d184133 100644 --- a/src/code/early-setf.lisp +++ b/src/code/early-setf.lisp @@ -393,21 +393,21 @@ GET-SETF-EXPANSION directly." (destructuring-bind (lambda-list (&rest store-variables) &body body) rest - (let ((arglist-var (gensym "ARGS-")) + (let ((whole-var (gensym "WHOLE-")) (access-form-var (gensym "ACCESS-FORM-")) (env-var (gensym "ENVIRONMENT-"))) (multiple-value-bind (body local-decs doc) (parse-defmacro `(,lambda-list ,@store-variables) - arglist-var body access-fn 'defsetf + whole-var body access-fn 'defsetf + :environment env-var :anonymousp t) `(eval-when (:compile-toplevel :load-toplevel :execute) (assign-setf-macro ',access-fn (lambda (,access-form-var ,env-var) - (declare (ignore ,env-var)) + ,@local-decs (%defsetf ,access-form-var ,(length store-variables) - (lambda (,arglist-var) - ,@local-decs + (lambda (,whole-var) ,body))) nil ',doc))))))