summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/pcase.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2017-03-15 22:48:28 -0400
committerLars Brinkhoff <lars@nocrew.org>2017-04-04 08:23:46 +0200
commit8e6f204f44b6183ba73c7d1bec5841f2b7b8bdd0 (patch)
tree31f4a44bb5bc70144a0a7194b266f1e30fce3b9e /lisp/emacs-lisp/pcase.el
parent056548283884d61b1b9637c3e56855ce3a17274d (diff)
downloademacs-8e6f204f44b6183ba73c7d1bec5841f2b7b8bdd0.tar.gz
emacs-8e6f204f44b6183ba73c7d1bec5841f2b7b8bdd0.tar.bz2
emacs-8e6f204f44b6183ba73c7d1bec5841f2b7b8bdd0.zip
Make EIEIO use records.
* lisp/emacs-lisp/eieio-compat.el (eieio--generic-static-object-generalizer): Adjust to new tags. * lisp/emacs-lisp/eieio-core.el: Use records, and place the class object directly as tag. (eieio--object-class): Adjust to new tag representation. (eieio-object-p): Rewrite, and adapt to new `type-of' behavior. (eieio-defclass-internal): Use `make-record'. (eieio--generic-generalizer): Adjust generalizer code accordingly. * lisp/emacs-lisp/eieio.el (make-instance, clone): Use copy-record. * lisp/emacs-lisp/pcase.el (pcase-mutually-exclusive-predicates): Add `recordp'. * doc/lispref/records.texi, doc/misc/eieio.texi: Update for records.
Diffstat (limited to 'lisp/emacs-lisp/pcase.el')
-rw-r--r--lisp/emacs-lisp/pcase.el6
1 files changed, 6 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/pcase.el b/lisp/emacs-lisp/pcase.el
index fc5474ecc43..4a06ab25d3e 100644
--- a/lisp/emacs-lisp/pcase.el
+++ b/lisp/emacs-lisp/pcase.el
@@ -503,24 +503,30 @@ MATCH is the pattern that needs to be matched, of the form:
(symbolp . vectorp)
(symbolp . stringp)
(symbolp . byte-code-function-p)
+ (symbolp . recordp)
(integerp . consp)
(integerp . arrayp)
(integerp . vectorp)
(integerp . stringp)
(integerp . byte-code-function-p)
+ (integerp . recordp)
(numberp . consp)
(numberp . arrayp)
(numberp . vectorp)
(numberp . stringp)
(numberp . byte-code-function-p)
+ (numberp . recordp)
(consp . arrayp)
(consp . atom)
(consp . vectorp)
(consp . stringp)
(consp . byte-code-function-p)
+ (consp . recordp)
(arrayp . byte-code-function-p)
(vectorp . byte-code-function-p)
+ (vectorp . recordp)
(stringp . vectorp)
+ (stringp . recordp)
(stringp . byte-code-function-p)))
(defun pcase--mutually-exclusive-p (pred1 pred2)