aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/emacs-lisp/pcase.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp/pcase.el')
-rw-r--r--lisp/emacs-lisp/pcase.el13
1 files changed, 10 insertions, 3 deletions
diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
index 07443dabfef..10bd4bc6886 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -607,31 +607,38 @@ recording whether the var has been referenced by earlier parts of the match."
607 (symbolp . vectorp) 607 (symbolp . vectorp)
608 (symbolp . stringp) 608 (symbolp . stringp)
609 (symbolp . byte-code-function-p) 609 (symbolp . byte-code-function-p)
610 (symbolp . compiled-function-p)
610 (symbolp . recordp) 611 (symbolp . recordp)
611 (integerp . consp) 612 (integerp . consp)
612 (integerp . arrayp) 613 (integerp . arrayp)
613 (integerp . vectorp) 614 (integerp . vectorp)
614 (integerp . stringp) 615 (integerp . stringp)
615 (integerp . byte-code-function-p) 616 (integerp . byte-code-function-p)
617 (integerp . compiled-function-p)
616 (integerp . recordp) 618 (integerp . recordp)
617 (numberp . consp) 619 (numberp . consp)
618 (numberp . arrayp) 620 (numberp . arrayp)
619 (numberp . vectorp) 621 (numberp . vectorp)
620 (numberp . stringp) 622 (numberp . stringp)
621 (numberp . byte-code-function-p) 623 (numberp . byte-code-function-p)
624 (numberp . compiled-function-p)
622 (numberp . recordp) 625 (numberp . recordp)
623 (consp . arrayp) 626 (consp . arrayp)
624 (consp . atom) 627 (consp . atom)
625 (consp . vectorp) 628 (consp . vectorp)
626 (consp . stringp) 629 (consp . stringp)
627 (consp . byte-code-function-p) 630 (consp . byte-code-function-p)
631 (consp . compiled-function-p)
628 (consp . recordp) 632 (consp . recordp)
629 (arrayp . byte-code-function-p) 633 (arrayp . byte-code-function-p)
634 (arrayp . compiled-function-p)
630 (vectorp . byte-code-function-p) 635 (vectorp . byte-code-function-p)
636 (vectorp . compiled-function-p)
631 (vectorp . recordp) 637 (vectorp . recordp)
632 (stringp . vectorp) 638 (stringp . vectorp)
633 (stringp . recordp) 639 (stringp . recordp)
634 (stringp . byte-code-function-p))) 640 (stringp . byte-code-function-p)
641 (stringp . compiled-function-p)))
635 642
636(defun pcase--mutually-exclusive-p (pred1 pred2) 643(defun pcase--mutually-exclusive-p (pred1 pred2)
637 (or (member (cons pred1 pred2) 644 (or (member (cons pred1 pred2)
@@ -771,8 +778,8 @@ A and B can be one of:
771 ((consp (cadr pat)) #'consp) 778 ((consp (cadr pat)) #'consp)
772 ((stringp (cadr pat)) #'stringp) 779 ((stringp (cadr pat)) #'stringp)
773 ((vectorp (cadr pat)) #'vectorp) 780 ((vectorp (cadr pat)) #'vectorp)
774 ((byte-code-function-p (cadr pat)) 781 ((compiled-function-p (cadr pat))
775 #'byte-code-function-p)))) 782 #'compiled-function-p))))
776 (pcase--mutually-exclusive-p (cadr upat) otherpred)) 783 (pcase--mutually-exclusive-p (cadr upat) otherpred))
777 '(:pcase--fail . nil)) 784 '(:pcase--fail . nil))
778 ;; Since we turn (or 'a 'b 'c) into (pred (pcase--flip (memq '(a b c)))) 785 ;; Since we turn (or 'a 'b 'c) into (pred (pcase--flip (memq '(a b c))))