diff options
Diffstat (limited to 'lisp/emacs-lisp/ert.el')
| -rw-r--r-- | lisp/emacs-lisp/ert.el | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lisp/emacs-lisp/ert.el b/lisp/emacs-lisp/ert.el index d5e0afe3b92..6dacd568c7a 100644 --- a/lisp/emacs-lisp/ert.el +++ b/lisp/emacs-lisp/ert.el | |||
| @@ -396,12 +396,11 @@ Returns nil." | |||
| 396 | 396 | ||
| 397 | Determines whether CONDITION matches TYPE and EXCLUDE-SUBTYPES, | 397 | Determines whether CONDITION matches TYPE and EXCLUDE-SUBTYPES, |
| 398 | and aborts the current test as failed if it doesn't." | 398 | and aborts the current test as failed if it doesn't." |
| 399 | (let ((signaled-conditions (get (car condition) 'error-conditions)) | 399 | (let ((handled-conditions (pcase-exhaustive type |
| 400 | (handled-conditions (pcase-exhaustive type | ||
| 401 | ((pred listp) type) | 400 | ((pred listp) type) |
| 402 | ((pred symbolp) (list type))))) | 401 | ((pred symbolp) (list type))))) |
| 403 | (cl-assert signaled-conditions) | 402 | (unless (cl-some (lambda (hc) (error-has-type-p condition hc)) |
| 404 | (unless (cl-intersection signaled-conditions handled-conditions) | 403 | handled-conditions) |
| 405 | (ert-fail (append | 404 | (ert-fail (append |
| 406 | (funcall form-description-fn) | 405 | (funcall form-description-fn) |
| 407 | (list | 406 | (list |
| @@ -409,7 +408,7 @@ and aborts the current test as failed if it doesn't." | |||
| 409 | :fail-reason (concat "the error signaled did not" | 408 | :fail-reason (concat "the error signaled did not" |
| 410 | " have the expected type"))))) | 409 | " have the expected type"))))) |
| 411 | (when exclude-subtypes | 410 | (when exclude-subtypes |
| 412 | (unless (member (car condition) handled-conditions) | 411 | (unless (member (error-type condition) handled-conditions) |
| 413 | (ert-fail (append | 412 | (ert-fail (append |
| 414 | (funcall form-description-fn) | 413 | (funcall form-description-fn) |
| 415 | (list | 414 | (list |