X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fearly-setf.lisp;h=4f7a94a7390b6f74a3517a14c616cf5af718364b;hb=e5e1b41799b814bca18e5f6e5c10b12d06c35c46;hp=76a8c438983c1406f00fe52c9d765866f49b2278;hpb=670010e3f3dcd62efaf23f61abdc73950edb88c6;p=sbcl.git diff --git a/src/code/early-setf.lisp b/src/code/early-setf.lisp index 76a8c43..4f7a94a 100644 --- a/src/code/early-setf.lisp +++ b/src/code/early-setf.lisp @@ -91,7 +91,8 @@ GET-SETF-EXPANSION directly." ;;; If a macro, expand one level and try again. If not, go for the ;;; SETF function. -(declaim (ftype (function (t sb!c::lexenv)) expand-or-get-setf-inverse)) +(declaim (ftype (function (t (or null sb!c::lexenv))) + expand-or-get-setf-inverse)) (defun expand-or-get-setf-inverse (form environment) (multiple-value-bind (expansion expanded) (sb!xc:macroexpand-1 form environment) @@ -196,9 +197,10 @@ GET-SETF-EXPANSION directly." (defmacro-mundanely pushnew (obj place &rest keys &environment env) #!+sb-doc - "Takes an object and a location holding a list. If the object is already - in the list, does nothing. Else, conses the object onto the list. Returns - NIL. If there is a :TEST keyword, this is used for the comparison." + "Takes an object and a location holding a list. If the object is + already in the list, does nothing; otherwise, conses the object onto + the list. Returns the modified list. If there is a :TEST keyword, this + is used for the comparison." (multiple-value-bind (dummies vals newval setter getter) (get-setf-method place env) (let ((g (gensym))) @@ -372,8 +374,7 @@ GET-SETF-EXPANSION directly." (%defsetf ,access-form-var ,(length store-variables) (lambda (,arglist-var) ,@local-decs - (block ,access-fn - ,body)))) + ,body))) nil ',doc)))))) (t @@ -423,7 +424,7 @@ GET-SETF-EXPANSION directly." (assign-setf-macro ',access-fn (lambda (,whole ,environment) ,@local-decs - (block ,access-fn ,body)) + ,body) nil ',doc)))))