mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-16 09:50:25 +00:00
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.
This commit is contained in:
parent
2ad38b4745
commit
a325584281
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user