diff options
| author | Philipp Stephani | 2020-08-02 22:07:27 +0200 |
|---|---|---|
| committer | Philipp Stephani | 2020-08-02 22:07:27 +0200 |
| commit | a325584281c4d8552917fcb97caed449acb7ee65 (patch) | |
| tree | 46f45e805c88b29b963ab83117fc7abf8be66f57 | |
| parent | 2ad38b4745bf0203ca9ca0fe2eeb376943d384c6 (diff) | |
| download | emacs-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.el | 2 | ||||
| -rw-r--r-- | 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. | |||
| 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 |