summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/cl-generic.el
diff options
context:
space:
mode:
authorPhilipp Stephani <phst@google.com>2020-08-02 18:05:36 +0200
committerPhilipp Stephani <phst@google.com>2020-08-02 18:05:36 +0200
commit3e0c3479b24e1978d30bbcc00faac7bdd6bdd170 (patch)
tree6c986cb3485d84bf9eb638d5b5295c6b5a0ce8c0 /lisp/emacs-lisp/cl-generic.el
parent0a65e060207def5d31fb7d96b8d3bb1441fd13c9 (diff)
downloademacs-3e0c3479b24e1978d30bbcc00faac7bdd6bdd170.tar.gz
emacs-3e0c3479b24e1978d30bbcc00faac7bdd6bdd170.tar.bz2
emacs-3e0c3479b24e1978d30bbcc00faac7bdd6bdd170.zip
Add a workaround for Bug#42672
* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Work around Bug#42672 by uniquifying inline method names. * test/lisp/emacs-lisp/cl-generic-tests.el (cl-defgeneric/edebug/method): New regression test.
Diffstat (limited to 'lisp/emacs-lisp/cl-generic.el')
-rw-r--r--lisp/emacs-lisp/cl-generic.el11
1 files changed, 10 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
index c67681b0960..640eb6b06d4 100644
--- a/lisp/emacs-lisp/cl-generic.el
+++ b/lisp/emacs-lisp/cl-generic.el
@@ -211,7 +211,16 @@ DEFAULT-BODY, if present, is used as the body of a default method.
[&rest [&or
("declare" &rest sexp)
(":argument-precedence-order" &rest sexp)
- (&define ":method" [&rest atom]
+ (&define ":method"
+ ;; FIXME: The `:unique'
+ ;; construct works around
+ ;; Bug#42672. We'd rather want
+ ;; names like those generated by
+ ;; `cl-defmethod', but that
+ ;; requires larger changes to
+ ;; Edebug.
+ :unique "cl-generic-:method@"
+ [&rest atom]
cl-generic-method-args lambda-doc
def-body)]]
def-body)))