GNU bug report logs - #22955
25.1.50; *Help* xref for generic methods broken

Previous Next

Package: emacs;

Reported by: Eric Abrahamsen <eric <at> ericabrahamsen.net>

Date: Wed, 9 Mar 2016 04:18:01 UTC

Severity: normal

Found in version 25.1.50

Done: Eric Abrahamsen <eric <at> ericabrahamsen.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 22955 in the body.
You can then email your comments to 22955 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#22955; Package emacs. (Wed, 09 Mar 2016 04:18:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Eric Abrahamsen <eric <at> ericabrahamsen.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Wed, 09 Mar 2016 04:18:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Eric Abrahamsen <eric <at> ericabrahamsen.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 25.1.50; *Help* xref for generic methods broken
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




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#22955; Package emacs. (Wed, 09 Mar 2016 20:20:02 GMT) Full text and rfc822 format available.

Message #8 received at 22955 <at> debbugs.gnu.org (full text, mbox):

From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Eric Abrahamsen <eric <at> ericabrahamsen.net>, 22955 <at> debbugs.gnu.org
Subject: Re: bug#22955: 25.1.50; *Help* xref for generic methods broken
Date: Wed, 9 Mar 2016 22:19:31 +0200
On 03/09/2016 06:16 AM, Eric Abrahamsen wrote:
>
> 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:

Have you tried it with a build from emacs-25?

It seems to work fine here, at least for xref-backend-definitions and 
xref-backend-apropos.

> 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)

What's that my-find-symbol-switch-to-buffer in the backtrace?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#22955; Package emacs. (Thu, 10 Mar 2016 01:54:01 GMT) Full text and rfc822 format available.

Message #11 received at 22955 <at> debbugs.gnu.org (full text, mbox):

From: Eric Abrahamsen <eric <at> ericabrahamsen.net>
To: Dmitry Gutov <dgutov <at> yandex.ru>
Cc: 22955 <at> debbugs.gnu.org
Subject: Re: bug#22955: 25.1.50; *Help* xref for generic methods broken
Date: Thu, 10 Mar 2016 09:53:27 +0800
On 03/09/16 22:19 PM, Dmitry Gutov wrote:
> On 03/09/2016 06:16 AM, Eric Abrahamsen wrote:
>>
>> 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:
>
> Have you tried it with a build from emacs-25?
>
> It seems to work fine here, at least for xref-backend-definitions and
> xref-backend-apropos.
>
>> 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)
>
> What's that my-find-symbol-switch-to-buffer in the backtrace?

Well, damn -- my apologies for not trying this with emacs -Q. I had some
long-forgotten customizations causing the problem. Sorry for the noise!




Reply sent to Eric Abrahamsen <eric <at> ericabrahamsen.net>:
You have taken responsibility. (Fri, 17 Feb 2017 20:37:02 GMT) Full text and rfc822 format available.

Notification sent to Eric Abrahamsen <eric <at> ericabrahamsen.net>:
bug acknowledged by developer. (Fri, 17 Feb 2017 20:37:02 GMT) Full text and rfc822 format available.

Message #16 received at 22955-done <at> debbugs.gnu.org (full text, mbox):

From: Eric Abrahamsen <eric <at> ericabrahamsen.net>
To: 22955-done <at> debbugs.gnu.org
Subject: Re: bug#22955: Acknowledgement (25.1.50;
 *Help* xref for generic methods broken)
Date: Fri, 17 Feb 2017 12:36:13 -0800
This was not a bug. Will it let me close it?




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 18 Mar 2017 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 8 years and 95 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.