Subject: bug#64459: 30.0.50; Edebug can't instrument certain syntax-propertize-rules forms

From: Philipp Stephani <[email-masked]>
Date: Wed, 5 Jul 2023 11:34:06 +0200

Am Mi., 5. Juli 2023 um 01:46 Uhr schrieb Stefan Monnier
<[email-masked]>:
>
> > diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
> > index d610fa005cc..002a24af18b 100644
> > --- a/lisp/emacs-lisp/syntax.el
> > +++ b/lisp/emacs-lisp/syntax.el
> > @@ -249,11 +249,12 @@ syntax-propertize-rules
> >  Note: There may be at most nine back-references in the REGEXPs of
> >  all RULES in total."
> >    (declare (debug (&rest &or symbolp    ;FIXME: edebug this eval step.
> > -                         (form &rest
> > -                               (numberp
> > -                                [&or stringp ;FIXME: Use &wrap
> > -                                     ("prog1" [&or stringp def-form] def-body)
> > -                                     def-form])))))
> > +                         (def-form
> > +                          &rest
> > +                          (numberp
> > +                           [&or stringp ;FIXME: Use &wrap
> > +                                ("prog1" [&or stringp form] def-body)
> > +                                form])))))
> >    (let ((newrules nil))
> >      (while rules
> >        (if (symbolp (car rules))
>
> No, this one introduces a regression.  Try that one:
>

Yeah, that works at least in the cases I've tested. Thanks!