Commit a3255842 authored by Philipp Stephani's avatar Philipp Stephani

Improve Edebug symbols for inlined secondary methods (Bug#42671)

* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Include qualifiers in
Edebug symbol name.

* test/lisp/emacs-lisp/cl-generic-tests.el
(cl-defgeneric/edebug/method): Adapt unit test.
parent 2ad38b47
Pipeline #6211 failed with stage
in 8 seconds
......@@ -220,7 +220,7 @@ DEFAULT-BODY, if present, is used as the body of a default method.
;; requires larger changes to
;; Edebug.
:unique "cl-generic-:method@"
[&rest atom]
[&rest cl-generic-method-qualifier]
cl-generic-method-args lambda-doc
def-body)]]
def-body)))
......
......@@ -256,7 +256,8 @@ Edebug symbols (Bug#42672)."
(with-temp-buffer
(dolist (form '((cl-defgeneric cl-defgeneric/edebug/method/1 (_)
(:method ((_ number)) 1)
(:method ((_ string)) 2))
(:method ((_ string)) 2)
(:method :around ((_ number)) 3))
(cl-defgeneric cl-defgeneric/edebug/method/2 (_)
(:method ((_ number)) 3))))
(print form (current-buffer)))
......@@ -272,18 +273,19 @@ Edebug symbols (Bug#42672)."
;; Make generated symbols reproducible.
(gensym-counter 10000))
(eval-buffer)
(should (equal (reverse instrumented-names)
;; The generic function definitions come after
;; the method definitions because their body ends
;; later.
;; FIXME: We'd rather have names such as
;; `cl-defgeneric/edebug/method/1 ((_ number))',
;; but that requires further changes to Edebug.
(list (intern "cl-generic-:method@10000 ((_ number))")
(intern "cl-generic-:method@10001 ((_ string))")
'cl-defgeneric/edebug/method/1
(intern "cl-generic-:method@10002 ((_ number))")
'cl-defgeneric/edebug/method/2))))))
(should (equal
(reverse instrumented-names)
;; The generic function definitions come after the
;; method definitions because their body ends later.
;; FIXME: We'd rather have names such as
;; `cl-defgeneric/edebug/method/1 ((_ number))', but
;; that requires further changes to Edebug.
(list (intern "cl-generic-:method@10000 ((_ number))")
(intern "cl-generic-:method@10001 ((_ string))")
(intern "cl-generic-:method@10002 :around ((_ number))")
'cl-defgeneric/edebug/method/1
(intern "cl-generic-:method@10003 ((_ number))")
'cl-defgeneric/edebug/method/2))))))
(provide 'cl-generic-tests)
;;; cl-generic-tests.el ends here
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment