]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/pcase.el (pcase--expand-\`): Improve warning message
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 26 Sep 2024 20:40:54 +0000 (16:40 -0400)
committerEshel Yaron <me@eshelyaron.com>
Fri, 27 Sep 2024 10:23:35 +0000 (12:23 +0200)
And also move the warning "out of the way" so it doesn't
confuse optimizations.

(cherry picked from commit 4591d93a8e5e79e7fea8a67c84c6adf0ea8add28)

lisp/emacs-lisp/pcase.el

index fe62820f0cb2fe217f82afa2c1126d00757e58f4..898d460c14401b758b61e34671781499d52999ba 100644 (file)
@@ -1172,12 +1172,13 @@ The predicate is the logical-AND of:
           (upatd (pcase--expand-\` (cdr qpat))))
       (if (and (eq (car-safe upata) 'quote) (eq (car-safe upatd) 'quote))
           `'(,(cadr upata) . ,(cadr upatd))
-        `(and ,@(when (eq (car qpat) '\`)
-                  `((guard ,(macroexp-warn-and-return
-                             "Nested ` are not supported" t nil nil qpat))))
-              (pred consp)
+        `(and (pred consp)
               (app car-safe ,upata)
-              (app cdr-safe ,upatd)))))
+              (app cdr-safe ,upatd)
+              ,@(when (eq (car qpat) '\`)
+                  `((guard ,(macroexp-warn-and-return
+                             "Nested ` are not supported in Pcase patterns"
+                             t nil nil qpat))))))))
    ((or (stringp qpat) (numberp qpat) (symbolp qpat)) `',qpat)
    ;; In all other cases just raise an error so we can't break
    ;; backward compatibility when adding \` support for other