emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/compat 658db90 47/99: Simplify and-let* implementation


From: ELPA Syncer
Subject: [elpa] externals/compat 658db90 47/99: Simplify and-let* implementation
Date: Sun, 17 Oct 2021 05:57:55 -0400 (EDT)

branch: externals/compat
commit 658db907c52cbe829efc11acfd44236e7dcd995c
Author: Philip Kaludercic <philipk@posteo.net>
Commit: Philip Kaludercic <philipk@posteo.net>

    Simplify and-let* implementation
---
 compat-25.1.el | 12 +-----------
 1 file changed, 1 insertion(+), 11 deletions(-)

diff --git a/compat-25.1.el b/compat-25.1.el
index de9e824..c14a8b6 100644
--- a/compat-25.1.el
+++ b/compat-25.1.el
@@ -125,17 +125,7 @@ Like `when-let*', except if BODY is empty and all the 
bindings
 are non-nil, then the result is non-nil."
   :feature subr-x
   (declare (indent 1) (debug if-let*))
-  (let ((empty (make-symbol "s"))
-        (last t) list)
-    (dolist (var varlist)
-      (push `(,(if (cdr var) (car var) empty)
-              (and ,last ,(or (cdr var) (car var))))
-            list)
-      (when (or (cdr var) (consp (car var)))
-        (setq last (caar list))))
-    `(let* (,(nreverse list))
-       (when ,(caar list)
-         ,@body))))
+  `(when-let* ,varlist ,@(or body '(t))))
 
 (compat-defmacro if-let (spec then &rest else)
   "Bind variables according to SPEC and evaluate THEN or ELSE.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]