diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2015-01-26 11:43:06 -0500 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2015-01-26 11:43:06 -0500 |
commit | a9a3d429e6e53e2be0b20e84f9809dba1d03e52d (patch) | |
tree | 7a524468a14403d10d8a2eace08b803110447b7a /lisp/emacs-lisp/eieio-compat.el | |
parent | 4cdde9196fb4fafb00b0c51b908fd605274147bd (diff) | |
download | emacs-a9a3d429e6e53e2be0b20e84f9809dba1d03e52d.tar.gz |
* lisp/emacs-lisp/cl-generic.el (cl--generic-method): New struct.
(cl--generic): The method-table is now a (list-of cl--generic-method).
(cl--generic-member-method): New function.
(cl-generic-define-method): Use it.
(cl--generic-build-combined-method, cl--generic-cache-miss):
Adapt to new method-table.
(cl--generic-no-next-method-function): Add `method' argument.
(cl-generic-call-method): Adapt to new method representation.
(cl--generic-cnm-sample, cl--generic-nnm-sample): Adjust.
(cl-find-method, cl-method-qualifiers): New functions.
(cl--generic-method-info): Adapt to new method representation.
Return a string for the qualifiers.
(cl--generic-describe):
* lisp/emacs-lisp/eieio-opt.el (eieio-help-class): Adjust accordingly.
(eieio-all-generic-functions, eieio-method-documentation):
Adjust to new method representation.
* lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Use cl-find-method.
* test/automated/cl-generic-tests.el: Try and make sure cl-lib is not
required at run-time.
Diffstat (limited to 'lisp/emacs-lisp/eieio-compat.el')
-rw-r--r-- | lisp/emacs-lisp/eieio-compat.el | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/lisp/emacs-lisp/eieio-compat.el b/lisp/emacs-lisp/eieio-compat.el index 30bb5cee994..fcca99d79d5 100644 --- a/lisp/emacs-lisp/eieio-compat.el +++ b/lisp/emacs-lisp/eieio-compat.el @@ -203,11 +203,10 @@ Summary: ;; or :after, make sure there's a matching dummy primary. (when (and (memq kind '(:before :after)) ;; FIXME: Use `cl-find-method'? - (not (assoc (cons (mapcar (lambda (arg) - (if (consp arg) (nth 1 arg) t)) - specializers) - nil) - (cl--generic-method-table (cl--generic method))))) + (not (cl-find-method method () + (mapcar (lambda (arg) + (if (consp arg) (nth 1 arg) t)) + specializers)))) (cl-generic-define-method method () specializers t (lambda (cnm &rest args) (if (cl--generic-isnot-nnm-p cnm) |