diff options
author | Philipp Stephani <phst@google.com> | 2020-08-02 18:05:36 +0200 |
---|---|---|
committer | Philipp Stephani <phst@google.com> | 2020-08-02 18:05:36 +0200 |
commit | 3e0c3479b24e1978d30bbcc00faac7bdd6bdd170 (patch) | |
tree | 6c986cb3485d84bf9eb638d5b5295c6b5a0ce8c0 /lisp/emacs-lisp/cl-generic.el | |
parent | 0a65e060207def5d31fb7d96b8d3bb1441fd13c9 (diff) | |
download | emacs-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.el | 11 |
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))) |