Subject: Re: bug#59014: 29.0.50; single string in function body should act as doc string

From: Eli Zaretskii <[email-masked]>
Date: Fri, 04 Nov 2022 14:55:54 +0200

> From: Nicolas Graner <[email-masked]>
> Date: Fri, 04 Nov 2022 13:26:22 +0100
> 
> According to the Emacs lisp manual, node "Documentation Strings of Functions":
> 
>     You may wonder how the documentation string could be optional, since
>     there are required components of the function that follow it (the
>     body). Since evaluation of a string returns that string, without any
>     side effects, it has no effect if it is not the last form in the
>     body. Thus, in practice, there is no confusion between the first
>     form of the body and the documentation string; if the only body form
>     is a string then it serves both as the return value and as the
>     documentation.
> 
> This last sentence is no longer true in 29.0.50, the single string is
> not used as doc string:
> 
> (defun f () "foo")
> ⇒ f
> (f)
> ⇒ "foo"
> (documentation 'f)
> ⇒ nil
> (emacs-version)
> ⇒ "GNU Emacs 29.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version 3.24.5, cairo version 1.16.0)
>  of 2022-11-03"

Thanks.

Stefan, this seems to be due to your changes in commit
39e8fd357dd0a1f3776c05eee2cc5be451686712.  Specifically, the new
function-documentation returns nil in this case.  Could you please
take a look at this?