Fix Edebug specs for if-let* and and-let* (Bug#29236)
* test/lisp/emacs-lisp/subr-x.el (if-let*, if-let): Change Edebug spec to cause Edebug to instrument tests the results of which are not bound to symbols (the (VALUEFORM) case). (and-let*): Change Edebug spec to allow empty body. *test/lisp/emacs-lisp/subr-x-tests.el: (subr-x-and-let*-test-group-1): Add missing quote to erroneous form so Edebug will work on this test.
This commit is contained in:
parent
0ded1b41a9
commit
700f74e4c8
2 changed files with 6 additions and 4 deletions
|
@ -133,7 +133,7 @@ be of the form (VALUEFORM), which is evaluated and checked for
|
|||
nil; i.e. SYMBOL can be omitted if only the test result is of
|
||||
interest."
|
||||
(declare (indent 2)
|
||||
(debug ((&rest [&or symbolp (symbolp form) (sexp)])
|
||||
(debug ((&rest [&or symbolp (symbolp form) (form)])
|
||||
form body)))
|
||||
(if varlist
|
||||
`(let* ,(setq varlist (internal--build-bindings varlist))
|
||||
|
@ -156,7 +156,9 @@ VARLIST is the same as in `if-let*'."
|
|||
"Bind variables according to VARLIST and conditionally eval BODY.
|
||||
Like `when-let*', except if BODY is empty and all the bindings
|
||||
are non-nil, then the result is non-nil."
|
||||
(declare (indent 1) (debug when-let*))
|
||||
(declare (indent 1)
|
||||
(debug ((&rest [&or symbolp (symbolp form) (form)])
|
||||
body)))
|
||||
(let (res)
|
||||
(if varlist
|
||||
`(let* ,(setq varlist (internal--build-bindings varlist))
|
||||
|
@ -168,7 +170,7 @@ are non-nil, then the result is non-nil."
|
|||
"Bind variables according to SPEC and eval THEN or ELSE.
|
||||
Like `if-let*' except SPEC can have the form (SYMBOL VALUEFORM)."
|
||||
(declare (indent 2)
|
||||
(debug ([&or (&rest [&or symbolp (symbolp form) (sexp)])
|
||||
(debug ([&or (&rest [&or symbolp (symbolp form) (form)])
|
||||
(symbolp form)]
|
||||
form body))
|
||||
(obsolete "use `if-let*' instead." "26.1"))
|
||||
|
|
|
@ -403,7 +403,7 @@
|
|||
(should-error (eval '(and-let* (nil (x 1))) lexical-binding)
|
||||
:type 'setting-constant)
|
||||
(should (equal nil (and-let* ((nil) (x 1)))))
|
||||
(should-error (eval (and-let* (2 (x 1))) lexical-binding)
|
||||
(should-error (eval '(and-let* (2 (x 1))) lexical-binding)
|
||||
:type 'wrong-type-argument)
|
||||
(should (equal 1 (and-let* ((2) (x 1)))))
|
||||
(should (equal 2 (and-let* ((x 1) (2)))))
|
||||
|
|
Loading…
Add table
Reference in a new issue