]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid a compilation warning in iter-do
authorLars Ingebrigtsen <larsi@gnus.org>
Sat, 6 Feb 2021 10:31:08 +0000 (11:31 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Sat, 6 Feb 2021 10:31:18 +0000 (11:31 +0100)
* lisp/emacs-lisp/generator.el (iter-do): Avoid a compilation
warning on using variables marked for not using (bug#31641).
Eg. (iter-do (_ i))

lisp/emacs-lisp/generator.el

index 9eb6d959645f70533eae3f94bc50ac5fed360578..e45260c32ac916d194b432577901717c815e26e0 100644 (file)
@@ -725,17 +725,20 @@ Return the value with which ITERATOR finished iteration."
         (condition-symbol (cps--gensym "iter-do-condition"))
         (it-symbol (cps--gensym "iter-do-iterator"))
         (result-symbol (cps--gensym "iter-do-result")))
-    `(let (,var
-           ,result-symbol
+    `(let (,result-symbol
            (,done-symbol nil)
            (,it-symbol ,iterator))
-       (while (not ,done-symbol)
-         (condition-case ,condition-symbol
-             (setf ,var (iter-next ,it-symbol))
-           (iter-end-of-sequence
-            (setf ,result-symbol (cdr ,condition-symbol))
-            (setf ,done-symbol t)))
-         (unless ,done-symbol ,@body))
+       (while
+           (let ((,var
+                  (condition-case ,condition-symbol
+                      (iter-next ,it-symbol)
+                    (iter-end-of-sequence
+                     (setf ,result-symbol (cdr ,condition-symbol))
+                     (setf ,done-symbol t)))))
+             (unless ,done-symbol
+               ,@body
+               ;; Loop until done-symbol is set.
+               t)))
        ,result-symbol)))
 
 (defvar cl--loop-args)