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

From: Gerd Möllmann <[email-masked]>
Date: Tue, 22 Aug 2023 10:05:39 +0200

Michael Heerdegen <[email-masked]> writes:

> Gerd Möllmann <[email-masked]> writes:
>
>> I wonder if this isn't a bug in cl-flet itself.  If you change the names
>> a bit, this is 
>>
>> (cl-flet ((fn (a b)))
>>   ...)
>>
>> which is a perfectly valid local definition of FN with two parameter A
>> and B, returning nil in CL.  It signals an error in Emacs which I'd
>> consider a bug.
>
> It's a known limitation, AFAIR.  It's more important to support the
> (SYMBOL EXPR) than this corner case, and we don't want to guess "what is
> meant", so a binding of two elements is always interpreted this way in
> Elisp.  This problem has been discussed a while ago.

That's quite unfortunate :-(.  I wish that whole extension would be at
least be deprecated.

I'll exchange the two debug specs then.  ATM, I don't see how to test
that though.  That's also unfortunate.

> Hmm, right...but where did I see it.  Oh, I remember, it was
> `cl-defmethod' that supports such names.

Looks like it does, indeed, by constructing a symbol.  One couldn't tell
from the doc string :-).