branch: externals/transient
commit a394e16dfea99472faa68550648ec2e321f6b818
Author: Jonas Bernoulli <jo...@bernoul.li>
Commit: Jonas Bernoulli <jo...@bernoul.li>

    Backport a fix from Emacs 30 for a bogus warning from COND-let forms
    
    The macro expansions did not leave a variable `_' unused; this
    triggered an irritating compiler warning.
    
    Backport fix for https://debbugs.gnu.org/cgi/bugreport.cgi?bug=69108,
    from Emacs commit e680827e814e155cf79175d87ff7c6ee3a08b69a.
---
 lisp/transient.el | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/lisp/transient.el b/lisp/transient.el
index 71953d0be5..a40217c8c0 100644
--- a/lisp/transient.el
+++ b/lisp/transient.el
@@ -102,6 +102,19 @@ TYPE is a type descriptor as accepted by `cl-typep', which 
see."
           `(pred (pcase--flip cl-typep ',type))
         `(pred (cl-typep _ ',type))))))
 
+(static-if (< emacs-major-version 30)
+    (progn
+      (defun internal--build-binding@backport-e680827e814 (fn binding prev-var)
+        "Backport not warning about `_' not being left unused.
+Backport fix for https://debbugs.gnu.org/cgi/bugreport.cgi?bug=69108,
+from Emacs commit e680827e814e155cf79175d87ff7c6ee3a08b69a."
+        (let ((binding (funcall fn binding prev-var)))
+          (if (eq (car binding) '_)
+              (cons (make-symbol "s") (cdr binding))
+            binding)))
+      (advice-add 'internal--build-binding :around
+                  #'internal--build-binding@backport-e680827e814)))
+
 (make-obsolete-variable 'transient-hide-during-minibuffer-read
                         'transient-show-during-minibuffer-read "0.8.0")
 

Reply via email to