Subject: 24.3.50; Error for key help for anonymous commands

From: Michael Heerdegen <[email-masked]>
Date: Wed, 29 Jan 2014 02:23:06 +0100

Hello,

emacs -Q.  Eval (the first line is just a silly example, the key and the
lambda don't matter):

--8<---------------cut here---------------start------------->8---
    (global-set-key [pause] (lambda () (interactive) (make-frame)))

    (require 'auth-source)
--8<---------------cut here---------------end--------------->8---

Now hit C-h k <pause>.  You get

Debugger entered--Lisp error: (wrong-type-argument symbolp (lambda nil (interactive) (make-frame)))
  fboundp((lambda nil (interactive) (make-frame)))
  (and (fboundp generic) (get generic (quote eieio-method-obarray)))
  (if (and (fboundp generic) (get generic (quote eieio-method-obarray))) (progn (save-excursion (goto-char (point-min)) (if (re-search-forward " in `.+'.$" nil t) (progn (replace-match ".")))) (save-excursion (insert "\n\nThis is a generic function" (cond ((and (generic-primary-only-p generic) (generic-primary-only-one-p generic)) " with only one primary method") ((generic-primary-only-p generic) " with only primary methods") (t "")) ".\n\n") (insert (propertize "Implementations:\n\n" (quote face) (quote bold))) (let ((i 4) (prefix [":STATIC" ":BEFORE" ":PRIMARY" ":AFTER"])) (while (< i 7) (let ((gm ...)) (if gm (progn ...))) (setq i (1+ i))) (setq i 0) (while (< i 4) (let* ((gm ...) cname location) (while gm (setq cname ...) (insert "`") (help-insert-xref-button ... ... cname) (insert "' " ... " ") (let* ... ...) (insert "\n" ...) (if ... ...) (setq gm ...) (insert "\n"))) (setq i (1+ i)))))))
  eieio-help-generic((lambda nil (interactive) (make-frame)))
  run-hook-with-args(eieio-help-generic (lambda nil (interactive) (make-frame)))
  describe-function-1((lambda nil (interactive) (make-frame)))
  describe-key([pause] 1 nil)
  call-interactively(describe-key nil nil)
  command-execute(describe-key)

auth-source.el requires eieio, which does

    (add-hook 'help-fns-describe-function-functions 'eieio-help-generic)

and `eieio-help-generic' obviously doesn't treat this case right.

Thanks,

Michael.

In GNU Emacs 24.3.50.3 (x86_64-unknown-linux-gnu, GTK+ Version 3.8.6)
 of 2014-01-29 on drachen
Windowing system distributor `The X.Org Foundation', version 11.0.11405000
System Description:	Debian GNU/Linux testing (jessie)