319 |
(when (and (consp place) (eq (car place) 'the)) |
(when (and (consp place) (eq (car place) 'the)) |
320 |
(return-from setf-expand-1 |
(return-from setf-expand-1 |
321 |
(setf-expand-1 (caddr place) `(the ,(cadr place) ,newvalue) env))) |
(setf-expand-1 (caddr place) `(the ,(cadr place) ,newvalue) env))) |
322 |
|
(when (and (consp place) (eq (car place) 'values)) |
323 |
|
(do ((vl (cdr place) (cdr vl)) |
324 |
|
(sym (gensym)) |
325 |
|
(forms nil) |
326 |
|
(n 0 (1+ n))) |
327 |
|
((endp vl) (return-from setf-expand-1 |
328 |
|
`(let ((,sym (multiple-value-list ,newvalue))) |
329 |
|
(values ,@(nreverse forms))))) |
330 |
|
(declare (fixnum n) (object vl)) |
331 |
|
(push `(setq ,(car vl) (nth ,n ,sym)) forms))) |
332 |
(when (symbolp place) |
(when (symbolp place) |
333 |
(return-from setf-expand-1 `(setq ,place ,newvalue))) |
(return-from setf-expand-1 `(setq ,place ,newvalue))) |
334 |
(when (and (consp place) |
(when (and (consp place) |