mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-07 15:00:34 -08:00
New edebug-spec, nested-backquote-form. This fixes bug #31090
* lisp/emacs-lisp/edebug.el: (nested-backquote-form): a new edebug-spec which handles nested backquote structures without a , or ,@ "between" the outer and inner backquotes. (backquote-form): Use nested-backquote-form.
This commit is contained in:
parent
9a82195cfc
commit
ef0fc0bed1
1 changed files with 13 additions and 0 deletions
|
|
@ -2165,6 +2165,9 @@ into `edebug--cl-macrolet-defs' which is checked in `edebug-list-form-args'."
|
|||
;; but only at the top level inside unquotes.
|
||||
(def-edebug-spec backquote-form
|
||||
(&or
|
||||
;; Disallow instrumentation of , and ,@ inside a nested backquote, since
|
||||
;; these are likely to be forms generated by a macro being debugged.
|
||||
("`" nested-backquote-form)
|
||||
([&or "," ",@"] &or ("quote" backquote-form) form)
|
||||
;; The simple version:
|
||||
;; (backquote-form &rest backquote-form)
|
||||
|
|
@ -2180,6 +2183,16 @@ into `edebug--cl-macrolet-defs' which is checked in `edebug-list-form-args'."
|
|||
(vector &rest backquote-form)
|
||||
sexp))
|
||||
|
||||
(def-edebug-spec nested-backquote-form
|
||||
(&or
|
||||
;; Allow instrumentation of any , or ,@ contained within the (\, ...) or
|
||||
;; (\,@ ...) matched on the next line.
|
||||
([&or "," ",@"] backquote-form)
|
||||
(nested-backquote-form [&rest [¬ "," ",@"] nested-backquote-form]
|
||||
. [&or nil nested-backquote-form])
|
||||
(vector &rest nested-backquote-form)
|
||||
sexp))
|
||||
|
||||
;; Special version of backquote that instruments backquoted forms
|
||||
;; destined to be evaluated, usually as the result of a
|
||||
;; macroexpansion. Backquoted code can only have unquotes (, and ,@)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue