Subject: bug#65344: 28.2; Unable to Edebug cl-flet form which uses argument destructuring

From: Gerd Möllmann <[email-masked]>
Date: Thu, 24 Aug 2023 08:17:59 +0200

Michael Heerdegen <[email-masked]> writes:

> Gerd Möllmann <[email-masked]> writes:
>
>> Edebug then matches def-form with ((x y)) or (&rest x), and it finds it
>> doesn't match.  I would have expected that this leads to backtracking
>> and trying the second alternative of the &or, but that's not
>> happening.
>
> It's very similar to the originally reported problem.  As I said - maybe
> look at `edebug-list-form' which is called in both cases and
> intentionally inhibits backtracking, AFAIU.

That's correct.  Setting edebug-gate to t makes not matching an error.
That's the, confusing to me, invalid-read-syntax.  I understand that.

What I don't understand is if that's intended, or maybe an oversight.
Oversight, because it prevents a, in my opinion, valid-looking use of
def-form like in our case, inside an &or.

Difficult.

One could of course try filtering out constructs that def-form doesn't
like with a preceeding &not, but that's such an effing solution that my
arm hairs stand up.  I don't think I'll do that.