* lisp/emacs-lisp/pcase.el: Add support for not
to pred
(pcase--split-pred, pcase--funcall): Adjust for `not`. (pcase--get-macroexpander): New function. (pcase--edebug-match-macro, pcase--make-docstring) (pcase--macroexpand): Use it. * lisp/emacs-lisp/radix-tree.el (radix-tree-leaf): Use it! * doc/lispref/control.texi (The @code{pcase} macro): Document it. * lisp/emacs-lisp/ert.el (ert--explain-equal-rec): Remove redundant test.
This commit is contained in:
parent
df34ed8cbf
commit
0ab56a4e93
6 changed files with 56 additions and 16 deletions
|
@ -487,7 +487,7 @@ Errors during evaluation are caught and handled like nil."
|
|||
Returns nil if they are."
|
||||
(if (not (eq (type-of a) (type-of b)))
|
||||
`(different-types ,a ,b)
|
||||
(pcase-exhaustive a
|
||||
(pcase a
|
||||
((pred consp)
|
||||
(let ((a-length (proper-list-p a))
|
||||
(b-length (proper-list-p b)))
|
||||
|
@ -538,7 +538,7 @@ Returns nil if they are."
|
|||
for xi = (ert--explain-equal-rec ai bi)
|
||||
do (when xi (cl-return `(array-elt ,i ,xi)))
|
||||
finally (cl-assert (equal a b) t))))
|
||||
((pred atom)
|
||||
(_
|
||||
(if (not (equal a b))
|
||||
(if (and (symbolp a) (symbolp b) (string= a b))
|
||||
`(different-symbols-with-the-same-name ,a ,b)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue