]> git.eshelyaron.com Git - emacs.git/commit
* list/emacs-lisp/edebug.el: Don't overload `edebug-form-spec`
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 10 Feb 2021 17:36:36 +0000 (12:36 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 10 Feb 2021 17:36:36 +0000 (12:36 -0500)
commitd6eddf2c079280e5ceea8c5251613ba801f3e54d
treedb67330fa5cfdb4170062d90d05f8babce24ab0f
parent9b0d76e93b1e72425f8ee67de5eea74520beb5dd
* list/emacs-lisp/edebug.el: Don't overload `edebug-form-spec`

The `edebug-form-spec` symbol property was used to store two different things:
the handlers for spec elements like `body` and the handlers for
spec operators like `&or`.  But these two sets use different calling
conventions, so they're fundamentally incompatible.

So, move the handlers to spec operators to the new property
`edebug--spec-op-function`.  This unbreaks Edebugging of:

    (cl-flet ((f (&rest x) x)) 3)

* lisp/emacs-lisp/edebug.el <toplevel>: Split the alist of built in
spec elements into normal spec element and spec ops.
(edebug--get-spec-op): New function.
(edebug-match-specs): Use it.
(edebug-match-:name): Rename from `edebug-match-colon-name`.
lisp/emacs-lisp/edebug.el