From: Alan Mackenzie <acm@muc.de>
To: Stefan Monnier <monnier@iro.umontreal.ca>
Cc: Dmitry Gutov <dmitry@gutov.dev>, 74052-done@debbugs.gnu.org, acm@muc.de
Subject: bug#74052: Master: edebug fails to instrument nested pcase guard form.
Date: Mon, 28 Oct 2024 16:46:59 +0000 [thread overview]
Message-ID: <Zx_AA3F6mL3r_xCW@MAC.fritz.box> (raw)
In-Reply-To: <jwvldy8l53n.fsf-monnier+emacs@gnu.org>
Hello, Stefan.
On Mon, Oct 28, 2024 at 09:49:55 -0400, Stefan Monnier wrote:
> Hi Alan,
[ .... ]
> > + ;; Note: PF is evaluated in FUN rather than in this function, so that
> > + ;; it can use any dynamic bindings created there.
> Nitpick: PF is not "evaluated" but "called".
Nits are important. :-) I've corrected that.
[ .... ]
> > @@ -84,14 +84,17 @@ 'pcase-FUN
> > (defun pcase--edebug-match-pat-args (head pf)
> > ;; (cl-assert (null (cdr head)))
> > (setq head (car head))
> > - (or (alist-get head '((quote sexp)
> > - (or &rest pcase-PAT)
> > - (and &rest pcase-PAT)
> > - (guard form)
> > - (pred &or ("not" pcase-FUN) pcase-FUN)
> > - (app pcase-FUN pcase-PAT)))
> > + (let ((specs
> > + (alist-get head '((quote sexp)
> > + (or &rest pcase-PAT)
> > + (and &rest pcase-PAT)
> > + (guard form)
> > + (pred &or ("not" pcase-FUN) pcase-FUN)
> > + (app pcase-FUN pcase-PAT)))))
> > + (if specs
> > + (funcall pf specs)
> > (let ((me (pcase--get-macroexpander head)))
> > - (funcall pf (and me (symbolp me) (edebug-get-spec me))))))
> > + (funcall pf (and me (symbolp me) (edebug-get-spec me)))))))
> +1 (tho I'd hoist the common `(funcall pf` out of the `if`).
Done that too, by a slight rearrangement of the code.
I've committed the (corrected) patch, and I'm closing the bug with this
post.
> And thanks!
And thank you too for such a quick reply!
> Stefan
--
Alan Mackenzie (Nuremberg, Germany).
prev parent reply other threads:[~2024-10-28 16:46 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-27 21:54 bug#74052: Master: edebug fails to instrument nested pcase guard form Alan Mackenzie
2024-10-28 13:49 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-10-28 16:46 ` Alan Mackenzie [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zx_AA3F6mL3r_xCW@MAC.fritz.box \
--to=acm@muc.de \
--cc=74052-done@debbugs.gnu.org \
--cc=dmitry@gutov.dev \
--cc=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.