]> 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>
Thu, 30 Mar 2017 16:31:27 +0000 (18:31 +0200)
commitcb315830a6bb2637316bef8664822dac4b8ad0f8
tree564ab50d819a8808d4163a8aedebccec563a644e
parent03cf46327d03ad5130052e77060dbd24ad8e9843
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