]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/macroexp.el (macroexp-parse-body): Fix bug#67568
authorStefan Monnier <monnier@iro.umontreal.ca>
Sun, 3 Dec 2023 19:22:48 +0000 (14:22 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sun, 3 Dec 2023 19:22:48 +0000 (14:22 -0500)
This fixes a regression introduced in commit f616edb4ccce.

lisp/emacs-lisp/macroexp.el

index 6eb670d6dc1830d8eb0f885b032bac4c40c9a9f4..615a6622ce602a7d7ee8a4443ad79fbc12fe9578 100644 (file)
@@ -533,17 +533,18 @@ definitions to shadow the loaded ones for use in file byte-compilation."
 (defun macroexp-parse-body (body)
   "Parse a function BODY into (DECLARATIONS . EXPS)."
   (let ((decls ()))
-    ;; If there is only a string literal with nothing following, we
-    ;; consider this to be part of the body (the return value) rather
-    ;; than a declaration at this point.
-    (unless (and (null (cdr body)) (stringp (car body)))
-      (while
-          (and body
-               (let ((e (car body)))
-                 (or (stringp e)
-                     (memq (car-safe e)
-                           '(:documentation declare interactive cl-declare)))))
-        (push (pop body) decls)))
+    (while
+        (and body
+             (let ((e (car body)))
+               (or (and (stringp e)
+                        ;; If there is only a string literal with
+                        ;; nothing following, we consider this to be
+                        ;; part of the body (the return value) rather
+                        ;; than a declaration at this point.
+                        (cdr body))
+                   (memq (car-safe e)
+                         '(:documentation declare interactive cl-declare)))))
+      (push (pop body) decls))
     (cons (nreverse decls) body)))
 
 (defun macroexp-progn (exps)