]> git.eshelyaron.com Git - emacs.git/commit
Make EIEIO use records.
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 16 Mar 2017 02:48:28 +0000 (22:48 -0400)
committerLars Brinkhoff <lars@nocrew.org>
Tue, 4 Apr 2017 06:23:46 +0000 (08:23 +0200)
commit8e6f204f44b6183ba73c7d1bec5841f2b7b8bdd0
tree31f4a44bb5bc70144a0a7194b266f1e30fce3b9e
parent056548283884d61b1b9637c3e56855ce3a17274d
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.
doc/lispref/records.texi
doc/misc/eieio.texi
lisp/emacs-lisp/eieio-base.el
lisp/emacs-lisp/eieio-compat.el
lisp/emacs-lisp/eieio-core.el
lisp/emacs-lisp/eieio.el
lisp/emacs-lisp/pcase.el