summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorPhilipp Stephani <phst@google.com>2021-05-22 13:29:50 +0200
committerPhilipp Stephani <phst@google.com>2021-05-22 13:29:50 +0200
commit33a52cb45832d4041b6f0db78ee289ba9aca0f64 (patch)
treec8711f0226c9581a9afe2b9b75ae503a98117577 /lisp/emacs-lisp
parent91fa95bde0619b4f3bc7d93d06c7c75998b1588d (diff)
downloademacs-33a52cb45832d4041b6f0db78ee289ba9aca0f64.tar.gz
emacs-33a52cb45832d4041b6f0db78ee289ba9aca0f64.tar.bz2
emacs-33a52cb45832d4041b6f0db78ee289ba9aca0f64.zip
Give 'when-let' and 'when-let*' their own Edebug specification.
The Edebug specification of 'if-let' and 'if-let*' doesn't work if the body is empty. While that's a pathological case, it's not wrong per se, and could arguably happen due to macro expansion. * lisp/emacs-lisp/subr-x.el (when-let*, when-let): Don't reuse Edebug specification from 'if-let*' and 'if-let'.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/subr-x.el9
1 files changed, 7 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/subr-x.el b/lisp/emacs-lisp/subr-x.el
index fb890509ad7..72406df0ff7 100644
--- a/lisp/emacs-lisp/subr-x.el
+++ b/lisp/emacs-lisp/subr-x.el
@@ -139,7 +139,9 @@ This is like `if-let' but doesn't handle a VARLIST of the form
"Bind variables according to VARLIST and conditionally evaluate BODY.
This is like `when-let' but doesn't handle a VARLIST of the form
\(SYMBOL SOMETHING) specially."
- (declare (indent 1) (debug if-let*))
+ (declare (indent 1)
+ (debug ((&rest [&or symbolp (symbolp form) (form)])
+ body)))
(list 'if-let* varlist (macroexp-progn body)))
(defmacro and-let* (varlist &rest body)
@@ -190,7 +192,10 @@ Evaluate each binding in turn, stopping if a binding value is nil.
If all are non-nil, return the value of the last form in BODY.
The variable list SPEC is the same as in `if-let'."
- (declare (indent 1) (debug if-let))
+ (declare (indent 1)
+ (debug ([&or (symbolp form) ; must be first, Bug#48489
+ (&rest [&or symbolp (symbolp form) (form)])]
+ body)))
(list 'if-let spec (macroexp-progn body)))
(defsubst hash-table-empty-p (hash-table)