From a325584281c4d8552917fcb97caed449acb7ee65 Mon Sep 17 00:00:00 2001 From: Philipp Stephani Date: Sun, 2 Aug 2020 22:07:27 +0200 Subject: [PATCH] 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. --- lisp/emacs-lisp/cl-generic.el | 2 +- test/lisp/emacs-lisp/cl-generic-tests.el | 28 +++++++++++++----------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el index 640eb6b06d4..02da07daaf4 100644 --- a/lisp/emacs-lisp/cl-generic.el +++ b/lisp/emacs-lisp/cl-generic.el @@ -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))) diff --git a/test/lisp/emacs-lisp/cl-generic-tests.el b/test/lisp/emacs-lisp/cl-generic-tests.el index fc39e349523..5aa58782f36 100644 --- a/test/lisp/emacs-lisp/cl-generic-tests.el +++ b/test/lisp/emacs-lisp/cl-generic-tests.el @@ -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 -- 2.39.2