emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master a325584: Improve Edebug symbols for inlined secondary methods (Bu


From: Philipp Stephani
Subject: master a325584: Improve Edebug symbols for inlined secondary methods (Bug#42671)
Date: Sun, 2 Aug 2020 16:08:33 -0400 (EDT)

branch: master
commit a325584281c4d8552917fcb97caed449acb7ee65
Author: Philipp Stephani <phst@google.com>
Commit: Philipp Stephani <phst@google.com>

    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 640eb6b..02da07d 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 fc39e34..5aa5878 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]