aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Stephani2020-08-02 22:07:27 +0200
committerPhilipp Stephani2020-08-02 22:07:27 +0200
commita325584281c4d8552917fcb97caed449acb7ee65 (patch)
tree46f45e805c88b29b963ab83117fc7abf8be66f57
parent2ad38b4745bf0203ca9ca0fe2eeb376943d384c6 (diff)
downloademacs-a325584281c4d8552917fcb97caed449acb7ee65.tar.gz
emacs-a325584281c4d8552917fcb97caed449acb7ee65.zip
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.
-rw-r--r--lisp/emacs-lisp/cl-generic.el2
-rw-r--r--test/lisp/emacs-lisp/cl-generic-tests.el28
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.
220 ;; requires larger changes to 220 ;; requires larger changes to
221 ;; Edebug. 221 ;; Edebug.
222 :unique "cl-generic-:method@" 222 :unique "cl-generic-:method@"
223 [&rest atom] 223 [&rest cl-generic-method-qualifier]
224 cl-generic-method-args lambda-doc 224 cl-generic-method-args lambda-doc
225 def-body)]] 225 def-body)]]
226 def-body))) 226 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)."
256 (with-temp-buffer 256 (with-temp-buffer
257 (dolist (form '((cl-defgeneric cl-defgeneric/edebug/method/1 (_) 257 (dolist (form '((cl-defgeneric cl-defgeneric/edebug/method/1 (_)
258 (:method ((_ number)) 1) 258 (:method ((_ number)) 1)
259 (:method ((_ string)) 2)) 259 (:method ((_ string)) 2)
260 (:method :around ((_ number)) 3))
260 (cl-defgeneric cl-defgeneric/edebug/method/2 (_) 261 (cl-defgeneric cl-defgeneric/edebug/method/2 (_)
261 (:method ((_ number)) 3)))) 262 (:method ((_ number)) 3))))
262 (print form (current-buffer))) 263 (print form (current-buffer)))
@@ -272,18 +273,19 @@ Edebug symbols (Bug#42672)."
272 ;; Make generated symbols reproducible. 273 ;; Make generated symbols reproducible.
273 (gensym-counter 10000)) 274 (gensym-counter 10000))
274 (eval-buffer) 275 (eval-buffer)
275 (should (equal (reverse instrumented-names) 276 (should (equal
276 ;; The generic function definitions come after 277 (reverse instrumented-names)
277 ;; the method definitions because their body ends 278 ;; The generic function definitions come after the
278 ;; later. 279 ;; method definitions because their body ends later.
279 ;; FIXME: We'd rather have names such as 280 ;; FIXME: We'd rather have names such as
280 ;; `cl-defgeneric/edebug/method/1 ((_ number))', 281 ;; `cl-defgeneric/edebug/method/1 ((_ number))', but
281 ;; but that requires further changes to Edebug. 282 ;; that requires further changes to Edebug.
282 (list (intern "cl-generic-:method@10000 ((_ number))") 283 (list (intern "cl-generic-:method@10000 ((_ number))")
283 (intern "cl-generic-:method@10001 ((_ string))") 284 (intern "cl-generic-:method@10001 ((_ string))")
284 'cl-defgeneric/edebug/method/1 285 (intern "cl-generic-:method@10002 :around ((_ number))")
285 (intern "cl-generic-:method@10002 ((_ number))") 286 'cl-defgeneric/edebug/method/1
286 'cl-defgeneric/edebug/method/2)))))) 287 (intern "cl-generic-:method@10003 ((_ number))")
288 'cl-defgeneric/edebug/method/2))))))
287 289
288(provide 'cl-generic-tests) 290(provide 'cl-generic-tests)
289;;; cl-generic-tests.el ends here 291;;; cl-generic-tests.el ends here