mirror of
https://github.com/masscollaborationlabs/emacs.git
synced 2025-07-08 13:19:36 +00:00
![]() This allows the use of (declare (debug ...)) in the lexical macros defined with `cl-macrolet`. It also fixes the names used by Edebug for the methods of `cl-generic` so it doesn't need to use gensym and so they don't include the formal arg names any more. * lisp/emacs-lisp/edebug.el (edebug--match-&-spec-op): Rename from `edebug--handle-&-spec-op`. (edebug--match-&-spec-op <&interpose>): Rename from `&lookup` and generalize so it can let-bind dynamic variables around the rest of the parse. (edebug-lexical-macro-ctx): Rename from `edebug--cl-macrolet-defs` and make it into an alist. (edebug-list-form-args): Use the specs from `edebug-lexical-macro-ctx` when available. (edebug--current-cl-macrolet-defs): Delete var. (edebug-match-cl-macrolet-expr, edebug-match-cl-macrolet-name) (edebug-match-cl-macrolet-body): Delete functions. (def-declarations): Use new `&interpose`. (edebug--match-declare-arg): Rename from `edebug--get-declare-spec` and adjust to new calling convention. * lisp/subr.el (def-edebug-elem-spec): Fix docstring. (eval-after-load): Use `declare`. * lisp/emacs-lisp/cl-generic.el: Fix Edebug names so we don't need gensym any more and we only include the specializers but not the formal arg names. (cl--generic-edebug-name): New var. (cl--generic-edebug-remember-name, cl--generic-edebug-make-name): New funs. (cl-defgeneric, cl-defmethod): Use them. * lisp/emacs-lisp/cl-macs.el: Add support for `debug` declarations in `cl-macrolet`. (cl-declarations-or-string): Fix use of `lambda-doc` and allow use of `declare`. (edebug-lexical-macro-ctx): Declare var. (cl--edebug-macrolet-interposer): New function. (cl-macrolet): Use it to pass the right `lexical-macro-ctx` to the body. * lisp/emacs-lisp/pcase.el (pcase-PAT): Use new `&interpose`. (pcase--edebug-match-pat-args): Rename from `pcase--get-edebug-spec` and adjust to new calling convention. * test/lisp/emacs-lisp/cl-generic-tests.el (cl-defgeneric/edebug/method): Adjust to the new names. * test/lisp/emacs-lisp/edebug-tests.el (edebug-cl-defmethod-qualifier) (edebug-tests-cl-flet): Adjust to the new names. * doc/lispref/edebug.texi (Specification List): Document &interpose. |
||
---|---|---|
.. | ||
bytecomp-resources | ||
edebug-resources | ||
eieio-tests | ||
faceup-resources | ||
faceup-tests | ||
package-resources | ||
shadow-resources | ||
testcover-resources | ||
backquote-tests.el | ||
backtrace-tests.el | ||
benchmark-tests.el | ||
bindat-tests.el | ||
bytecomp-tests.el | ||
cconv-tests.el | ||
check-declare-tests.el | ||
checkdoc-tests.el | ||
cl-extra-tests.el | ||
cl-generic-tests.el | ||
cl-lib-tests.el | ||
cl-macs-tests.el | ||
cl-preloaded-tests.el | ||
cl-print-tests.el | ||
cl-seq-tests.el | ||
copyright-tests.el | ||
derived-tests.el | ||
easy-mmode-tests.el | ||
edebug-tests.el | ||
ert-tests.el | ||
ert-x-tests.el | ||
find-func-tests.el | ||
float-sup-tests.el | ||
generator-tests.el | ||
gv-tests.el | ||
hierarchy-tests.el | ||
let-alist-tests.el | ||
lisp-mode-tests.el | ||
lisp-tests.el | ||
macroexp-tests.el | ||
map-tests.el | ||
memory-report-tests.el | ||
nadvice-tests.el | ||
package-tests.el | ||
pcase-tests.el | ||
pp-tests.el | ||
regexp-opt-tests.el | ||
ring-tests.el | ||
rmc-tests.el | ||
rx-tests.el | ||
seq-tests.el | ||
shadow-tests.el | ||
subr-x-tests.el | ||
syntax-tests.el | ||
tabulated-list-test.el | ||
testcover-tests.el | ||
text-property-search-tests.el | ||
thunk-tests.el | ||
timer-tests.el | ||
unsafep-tests.el | ||
warnings-tests.el |