Subject: Re: bug#78593: 31.0.50; describe-key broken on interactive lambdas

From: Eli Zaretskii <[email-masked]>
Date: Mon, 26 May 2025 19:46:21 +0300

> Date: Mon, 26 May 2025 21:16:22 +0530 (IST)
> From: Madhu <[email-masked]>
> 
> On recent master, but this seems to have been broken for a while:
> 
> $ emacs -Q -eval '(define-key global-map (kbd "<f11>") (lambda () (interactive) (bury-buffer)))'
> 
> C-h v <f11>
> 
> throws an error:
> 
> function-get: Wrong type argument: symbolp, #[nil ((bury-buffer)) (t) nil nil nil]
> 
> Acktually the *Help* buffer is formatted with sufficient information,
> but the error prevents it from being displayed.

Thanks.

Stefan, this is due to your change:

  commit a4ec9ca12969018cdf15b8cc713b3ba054326f99
  Author:     Stefan Kangas <[email-masked]>
  AuthorDate: Tue Apr 1 21:25:33 2025 +0200
  Commit:     Stefan Kangas <[email-masked]>
  CommitDate: Tue Apr 1 21:25:33 2025 +0200

      function-put: signal error with non-symbol

      * lisp/subr.el (function-get): Signal an error if given a non-symbol
      for consistency with 'get'.
      * test/lisp/subr-tests.el (subr-butlast): Test for the above.

Any reasons not to revert that?  function-get correctly returns nil if
its argument is not a symbol, so why should this signal an error?