summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/eieio-compat.el
diff options
context:
space:
mode:
authorGemini Lasswell <gazally@runbox.com>2017-05-13 11:35:49 -0700
committerDmitry Gutov <dgutov@yandex.ru>2017-05-14 23:32:27 +0300
commite6f64df9c2b443d3385c2c25c29ccd5283d37e3f (patch)
tree487563d05e1133b4dc7147ed48b87c69e6fd4ff7 /lisp/emacs-lisp/eieio-compat.el
parent10037e4be2358597125a05db93f6fee551131d83 (diff)
downloademacs-e6f64df9c2b443d3385c2c25c29ccd5283d37e3f.tar.gz
Make edebug-step-in work on generic methods (Bug#22294)
* lisp/emacs-lisp/edebug.el (edebug-match-cl-generic-method-args): New function to implement the edebug-form-spec property of the symbol cl-generic-method-args. (edebug-instrument-function): If the function is a generic function, find and instrument all of its methods. Return a list instead of a single symbol. (edebug-instrument-callee): Now returns a list. Update docstring. (edebug-step-in): Handle the list returned by edebug-instrument-callee. * lisp/emacs-lisp/cl-generic.el (cl-defmethod): Use name and cl-generic-method-args in its Edebug spec. * lisp/emacs-lisp/eieio-compat.el (defmethod): Use name and cl-generic-method-args in its Edebug spec. * lisp/subr.el (method-files): New function. * test/lisp/subr-tests.el (subr-tests--method-files--finds-methods) (subr-tests--method-files--nonexistent-methods): New tests.
Diffstat (limited to 'lisp/emacs-lisp/eieio-compat.el')
-rw-r--r--lisp/emacs-lisp/eieio-compat.el4
1 files changed, 2 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/eieio-compat.el b/lisp/emacs-lisp/eieio-compat.el
index fe65ae02623..e6e6d118709 100644
--- a/lisp/emacs-lisp/eieio-compat.el
+++ b/lisp/emacs-lisp/eieio-compat.el
@@ -105,10 +105,10 @@ Summary:
(declare (doc-string 3) (obsolete cl-defmethod "25.1")
(debug
(&define ; this means we are defining something
- [&or symbolp ("setf" symbolp)]
+ [&or name ("setf" name :name setf)]
;; ^^ This is the methods symbol
[ &optional symbolp ] ; this is key :before etc
- listp ; arguments
+ cl-generic-method-args ; arguments
[ &optional stringp ] ; documentation string
def-body ; part to be debugged
)))