From: Stefan Monnier Date: Thu, 26 Sep 2024 20:40:54 +0000 (-0400) Subject: * lisp/emacs-lisp/pcase.el (pcase--expand-\`): Improve warning message X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=56cb580c4d342ff7a6178db123d070d7abccb1bc;p=emacs.git * lisp/emacs-lisp/pcase.el (pcase--expand-\`): Improve warning message And also move the warning "out of the way" so it doesn't confuse optimizations. (cherry picked from commit 4591d93a8e5e79e7fea8a67c84c6adf0ea8add28) --- diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el index fe62820f0cb..898d460c144 100644 --- a/lisp/emacs-lisp/pcase.el +++ b/lisp/emacs-lisp/pcase.el @@ -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