]> code.delx.au - gnu-emacs/commit
* lisp/emacs-lisp/cl-generic.el: Accomodate future changes
authorStefan Monnier <monnier@iro.umontreal.ca>
Thu, 29 Oct 2015 14:33:36 +0000 (10:33 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Thu, 29 Oct 2015 14:33:36 +0000 (10:33 -0400)
commitaa1c4ae271733cf7dc64918b570bab4034488fa1
treeae25c2ee8a08e885354de4a8793f871c7723168a
parentc0d866dd690ffef08894dbce573c636ab0b42665
* lisp/emacs-lisp/cl-generic.el: Accomodate future changes

(cl--generic-generalizer): Add `name' field.
(cl-generic-make-generalizer): Add corresponding `name' argument.
(cl-generic-define-generalizer): New macro.
(cl--generic-head-generalizer, cl--generic-eql-generalizer)
(cl--generic-struct-generalizer, cl--generic-typeof-generalizer)
(cl--generic-t-generalizer): Use it.
(cl-generic-ensure-function): Add `noerror' argument.
(cl-generic-define): Use it so we don't follow aliases.
(cl-generic-define-method): Preserve pre-existing ordering of methods.
(cl--generic-arg-specializer): New function.
(cl--generic-cache-miss): Use it.
(cl-generic-generalizers): Only fset a temporary definition
during bootstrap.
(cl--generic-struct-tag, cl--generic-struct-specializers):
Allow extra arguments.

* lisp/emacs-lisp/eieio-compat.el (eieio--generic-static-symbol-generalizer)
(eieio--generic-static-object-generalizer): Use cl-generic-define-generalizer.
(eieio--generic-static-symbol-specializers): Allow extra arguments.

* lisp/emacs-lisp/eieio-core.el (eieio--generic-generalizer)
(eieio--generic-subclass-generalizer): Use cl-generic-define-generalizer.
(eieio--generic-subclass-specializers): Allow extra arguments.
lisp/emacs-lisp/cl-generic.el
lisp/emacs-lisp/eieio-compat.el
lisp/emacs-lisp/eieio-core.el