Subject: bug#77348: 30.1; cl-labels

From: Stefan Monnier <[email-masked]>
Date: Sun, 30 Mar 2025 00:45:40 -0400

>> Instrument the following forms for edebug,
>> e.g., by C-u M-x eval-defun RET
>> with point on the form.
>>
>> (cl-labels ((foo (bar))))
>> ;; (error "Eager macro-expansion failure: (error \"Invalid argument
>>    name: 1\")")
>>
>> ;; should work same as
>> (cl-labels ((foo (bar) nil)))
>> ;; nil after manually stepping

In recent Emacs, the above two forms aren't equivalent any more:

    (cl-labels ((foo (bar))))

now defines `foo` as the function returned by calling `bar`.

> @Stefan: did you forget to mention the (FUNC EXP) binding definition
> case in the docstring of `cl-labels'?

Indeed.  Somehow I updated the Texinfo doc but not the docstring.
I just fixed that in `emacs-30`, thanks.

        Stefan