(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))))))