Fix Edebug spec for cl-macrolet (bug#29919)
Add an Edebug matching function for cl-macrolet which keeps track of its bindings and treats them as macros without Edebug specs when found in the body of the expression. * lisp/emacs-lisp/edebug.el (edebug--cl-macrolet-defs): New variable. (edebug-list-form-args): Use it. (edebug--current-cl-macrolet-defs): New variable. (edebug-match-cl-macrolet-expr, edebug-match-cl-macrolet-name) (edebug-match-cl-macrolet-body): New functions. * lisp/emacs-lisp/cl-macs.el (cl-macrolet): Use cl-macrolet-expr for Edebug spec. * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-cl-macrolet): New test. * test/lisp/emacs-lisp/edebug-resources/edebug-test-code.el (edebug-test-code-use-cl-macrolet): New function.
This commit is contained in:
parent
22d463ed5c
commit
df7371b84e
4 changed files with 66 additions and 4 deletions
|
@ -913,5 +913,16 @@ test and possibly others should be updated."
|
|||
"g"
|
||||
(should (equal edebug-tests-@-result 5)))))
|
||||
|
||||
(ert-deftest edebug-tests-cl-macrolet ()
|
||||
"Edebug can instrument `cl-macrolet' expressions. (Bug#29919)"
|
||||
(edebug-tests-with-normal-env
|
||||
(edebug-tests-setup-@ "use-cl-macrolet" '(10) t)
|
||||
(edebug-tests-run-kbd-macro
|
||||
"@ SPC SPC"
|
||||
(edebug-tests-should-be-at "use-cl-macrolet" "func")
|
||||
(edebug-tests-should-match-result-in-messages "+")
|
||||
"g"
|
||||
(should (equal edebug-tests-@-result "The result of applying + to (1 x) is 11")))))
|
||||
|
||||
(provide 'edebug-tests)
|
||||
;;; edebug-tests.el ends here
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue