X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fearly-setf.lisp;h=6549d414dfabe0ddde91ba67e98fd16b3d58b8df;hb=a53deb94a224bc903d00a5075acf562488cab06a;hp=8c5235a52dc49adf4062c0f714aa05c3cdcf7a85;hpb=0c9dcfb55e73398a3df8b1cc26d601b45685f29f;p=sbcl.git diff --git a/src/code/early-setf.lisp b/src/code/early-setf.lisp index 8c5235a..6549d41 100644 --- a/src/code/early-setf.lisp +++ b/src/code/early-setf.lisp @@ -372,14 +372,14 @@ GET-SETF-EXPANSION directly." (%defsetf ,access-form-var ,(length store-variables) (lambda (,arglist-var) ,@local-decs - (block ,access-fn - ,body)))) + ,body))) nil ',doc)))))) (t (error "ill-formed DEFSETF for ~S" access-fn)))) (defun %defsetf (orig-access-form num-store-vars expander) + (declare (type function expander)) (let (subforms subform-vars subform-exprs @@ -413,8 +413,7 @@ GET-SETF-EXPANSION directly." (unless (symbolp access-fn) (error "DEFINE-SETF-EXPANDER access-function name ~S is not a symbol." access-fn)) - (let ((whole (gensym "WHOLE-")) - (environment (gensym "ENV-"))) + (with-unique-names (whole environment) (multiple-value-bind (body local-decs doc) (parse-defmacro lambda-list whole body access-fn 'sb!xc:define-setf-expander @@ -423,7 +422,7 @@ GET-SETF-EXPANSION directly." (assign-setf-macro ',access-fn (lambda (,whole ,environment) ,@local-decs - (block ,access-fn ,body)) + ,body) nil ',doc)))))