Subject: 25.1.50; *Help* xref for generic methods broken

From: Eric Abrahamsen <[email-masked]>
Date: Wed, 09 Mar 2016 12:16:56 +0800

If you `describe-function' on a generic method, the resulting *Help*
buffer shows the various implementations correctly. However,
clicking/RET on the implementation links fails with:

Debugger entered--Lisp error: (wrong-number-of-arguments (lambda (fun file) (require (quote find-func)) (if (eq file (quote C-source)) (progn (setq file (help-C-file-name (indirect-function fun) (quote fun))))) (let ((location (find-function-search-for-symbol fun nil file))) (my-find-symbol-switch-to-buffer (car location)) (if (cdr location) (goto-char (cdr location)) (message "Unable to find location in file")))) 3)
  help-do-xref(nil (lambda (fun file) (require (quote find-func)) (if (eq file (quote C-source)) (progn (setq file (help-C-file-name (indirect-function fun) (quote fun))))) (let ((location (find-function-search-for-symbol fun nil file))) (my-find-symbol-switch-to-buffer (car location)) (if (cdr location) (goto-char (cdr location)) (message "Unable to find location in file")))) ((bbdb-db-load bbdb-db) "/home/eric/.emacs.d/bbdb/lisp/bbdb.el" cl-defmethod))
  help-button-action(#<marker (moves after insertion) at 276 in *Help*>)
  button-activate(#<marker (moves after insertion) at 276 in *Help*> nil)
  push-button(276)
  funcall-interactively(push-button 276)
  call-interactively(push-button nil nil)
  command-execute(push-button)

Basically, when `help-button-action' does this:

(help-do-xref nil
		(button-get button 'help-function)
		(button-get button 'help-args))

There are three 'help-args (the first arg is the specializer --
actually, maybe there as many args as there are specializers? don't
know), but the 'help-function only takes two args.

Hope that's enough to get it there!

In GNU Emacs 25.1.50.17 (x86_64-unknown-linux-gnu, GTK+ Version 3.18.8)
 of 2016-03-08 built on clem
Repository revision: 59c7a5d71145d88933a535e222bdf30105e7d382
Windowing system distributor 'The X.Org Foundation', version 11.0.11801000
Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GCONF GSETTINGS
NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11

Important settings:
  value of $LC_CTYPE: zh_CN.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp

Minor modes in effect:
  magit-auto-revert-mode: t
  global-git-commit-mode: t
  paredit-mode: t
  diff-auto-refine-mode: t
  recentf-mode: t
  dired-async-mode: t
  ace-pinyin-global-mode: t
  ace-pinyin-mode: t
  helm-mode: t
  async-bytecomp-package-mode: t
  shell-dirtrack-mode: t
  helm-adaptive-mode: t
  projectile-global-mode: t
  projectile-mode: t
  company-flx-mode: t
  global-company-mode: t
  company-mode: t
  display-time-mode: t
  show-paren-mode: t
  savehist-mode: t
  url-handler-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t