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

From: Michael Heerdegen <[email-masked]>
Date: Tue, 22 Aug 2023 08:10:49 +0200

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.

> > Second question: you are sure that the ";Allow (setf ...)
> > additionally to symbols." thing was not something Stefan wanted to
> > keep intentionally?  Just wondering.
>
> What makes you think so?

He definitely saw it when he made the last changes.

> > This spec was never being used, right?
>
> Right.  One cannot define functions with non-symbol function names,
> and never could.

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

Michael.