GNU bug report logs - #61640
30.0.50; Help Elisp xref recognize defclass parent classes

Previous Next

Package: emacs;

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

Date: Sun, 19 Feb 2023 22:09:01 UTC

Severity: normal

Found in version 30.0.50

Fixed in version 30.1

Done: Dmitry Gutov <dgutov <at> yandex.ru>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Eric Abrahamsen <eric <at> ericabrahamsen.net>
Subject: bug#61640: closed (Re: bug#61640: 30.0.50; Help Elisp xref
 recognize defclass parent classes)
Date: Mon, 20 Feb 2023 01:06:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#61640: 30.0.50; Help Elisp xref recognize defclass parent classes

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 61640 <at> debbugs.gnu.org.

-- 
61640: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=61640
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Dmitry Gutov <dgutov <at> yandex.ru>
To: Eric Abrahamsen <eric <at> ericabrahamsen.net>
Cc: 61640-done <at> debbugs.gnu.org
Subject: Re: bug#61640: 30.0.50; Help Elisp xref recognize defclass parent
 classes
Date: Mon, 20 Feb 2023 03:05:31 +0200
Version: 30.1

On 20/02/2023 01:45, Eric Abrahamsen wrote:
> Shouldn't this instead be an addition to `elisp-mode-infer-namespace',
> like with p8 below?
> 
>    (elisp-mode-test--with-buffer
>        (concat "(list {p1}alpha {p2}beta)\n"
>                "(progn {p3}gamma {p4}delta)\n"
>                "(lambda ({p5}epsilon {p6}zeta) {p7}eta)\n"
>                "(defclass child-class (parent-1 {p8}parent-2)\n")
>      (should (equal (elisp--xref-infer-namespace p1) 'variable))
>      (should (equal (elisp--xref-infer-namespace p2) 'variable))
>      (should (equal (elisp--xref-infer-namespace p3) 'variable))
>      (should (equal (elisp--xref-infer-namespace p4) 'variable))
>      (should (equal (elisp--xref-infer-namespace p5) 'variable))
>      (should (equal (elisp--xref-infer-namespace p6) 'variable))
>      (should (equal (elisp--xref-infer-namespace p7) 'variable))
>      (should (equal (elisp--xref-infer-namespace p8) 'function)))
> 
> Obviously just guessing here...

It seems you're right, thanks.

I've put the test case separately and pushed the combined change to 
master, commit cac13e36054.

That fixes the bug in my testing, but please do tell if something else 
comes up.

[Message part 3 (message/rfc822, inline)]
From: Eric Abrahamsen <eric <at> ericabrahamsen.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 30.0.50; Help Elisp xref recognize defclass parent classes
Date: Sun, 19 Feb 2023 14:08:42 -0800
[Message part 4 (text/plain, inline)]
In a form such as this:

(defclass ebdb-field-id (ebdb-field-labeled ebdb-field-obfuscated ebdb-field-user)
  ((label-list :initform 'ebdb-id-label-list)
   ...
   ))

All the symbols in

(ebdb-field-labeled ebdb-field-obfuscated ebdb-field-user)

should be recognized by `elisp--xref-infer-namespace' as 'function.
Right now, this is treated like a function call (ie like '(function
variable variable)).

I can't promise that the attached patch is exactly the right thing, but
it ought to be pretty close.

Thanks,
Eric

[elispxrefdefclass.diff (text/x-patch, attachment)]

This bug report was last modified 2 years and 145 days ago.

Previous Next


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