mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-03-09 06:30:32 -07:00
In setf.lsp, define-modify-macro destructively modified a variable (all-vars) which was used later in the same form
This commit is contained in:
parent
d6b3e9ff67
commit
c020d37dda
1 changed files with 9 additions and 9 deletions
|
|
@ -550,15 +550,15 @@ retrieved by (DOCUMENTATION 'SYMBOL 'FUNCTION)."
|
|||
(V VALS (CDR V))
|
||||
(LET-LIST NIL (CONS (LIST (CAR D) (CAR V)) LET-LIST)))
|
||||
((NULL D)
|
||||
(SETQ LET-LIST (APPEND (NREVERSE ALL-VARS) LET-LIST))
|
||||
(PUSH
|
||||
(LIST
|
||||
(CAR STORES)
|
||||
(IF (AND (LISTP %REFERENCE) (EQ (CAR %REFERENCE) 'THE))
|
||||
(LIST 'THE (CADR %REFERENCE)
|
||||
(LIST* (QUOTE ,function) GETTER ,@varlist ,restvar))
|
||||
(LIST* (QUOTE ,function) GETTER (MAPCAR #'CAR ALL-VARS))))
|
||||
LET-LIST)
|
||||
(SETQ LET-LIST
|
||||
(LIST*
|
||||
(LIST
|
||||
(CAR STORES)
|
||||
(IF (AND (LISTP %REFERENCE) (EQ (CAR %REFERENCE) 'THE))
|
||||
(LIST 'THE (CADR %REFERENCE)
|
||||
(LIST* (QUOTE ,function) GETTER ,@varlist ,restvar))
|
||||
(LIST* (QUOTE ,function) GETTER (MAPCAR #'CAR ALL-VARS))))
|
||||
(APPEND ALL-VARS LET-LIST)))
|
||||
`(LET* ,(NREVERSE LET-LIST)
|
||||
(DECLARE (:READ-ONLY ,@(mapcar #'first all-vars)
|
||||
,@vars))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue