]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix eager macroexpansion cycle in cl-once-only
authorSean Whitton <spwhitton@spwhitton.name>
Tue, 12 Apr 2022 15:59:22 +0000 (17:59 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 12 Apr 2022 15:59:22 +0000 (17:59 +0200)
* lisp/emacs-lisp/cl-macs.el (cl-once-only): Use different cl-loop
syntax, with no functional change, but such that the loop does not
expand into cl-psetq.

lisp/emacs-lisp/cl-macs.el

index af8855516ca9dd88581280ff2d91998b158ecaaf..364b5120a0afd327cce2c6ba29b0a89483eded6e 100644 (file)
@@ -2473,11 +2473,11 @@ See also `macroexp-let2'."
        ;; We require this explicit call to `list' rather than using
        ;; (,,@(cl-loop ...)) due to a limitation of Elisp's backquote.
        `(let ,(list
-               ,@(cl-loop for name in names and gensym in our-gensyms
+               ,@(cl-loop for name in names for gensym in our-gensyms
                           for to-eval = (or (cadr name) (car name))
                           collect ``(,,gensym ,,to-eval)))
           ;; During macroexpansion, bind each NAME to its gensym.
-          ,(let ,(cl-loop for name in names and gensym in our-gensyms
+          ,(let ,(cl-loop for name in names for gensym in our-gensyms
                           collect `(,(car name) ,gensym))
              ,@body)))))