From unknown Mon Aug 11 19:06:25 2025 X-Loop: help-debbugs@gnu.org Subject: bug#61640: 30.0.50; Help Elisp xref recognize defclass parent classes Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 19 Feb 2023 22:09:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 61640 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 61640@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.16768445366177 (code B ref -1); Sun, 19 Feb 2023 22:09:01 +0000 Received: (at submit) by debbugs.gnu.org; 19 Feb 2023 22:08:56 +0000 Received: from localhost ([127.0.0.1]:49835 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTrrc-0001bY-3g for submit@debbugs.gnu.org; Sun, 19 Feb 2023 17:08:56 -0500 Received: from lists.gnu.org ([209.51.188.17]:47934) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTrra-0001bR-O7 for submit@debbugs.gnu.org; Sun, 19 Feb 2023 17:08:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pTrra-0001Qq-Ic for bug-gnu-emacs@gnu.org; Sun, 19 Feb 2023 17:08:54 -0500 Received: from mail.ericabrahamsen.net ([52.70.2.18]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pTrrY-0008Vr-Tr for bug-gnu-emacs@gnu.org; Sun, 19 Feb 2023 17:08:54 -0500 Received: from localhost (c-71-197-232-41.hsd1.wa.comcast.net [71.197.232.41]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 95F95FA089 for ; Sun, 19 Feb 2023 22:08:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net; s=mail; t=1676844524; bh=QuPm7J7xAh5Swcbns7UQmHVB5FNH6VbVdi0bPejf9SY=; h=From:To:Subject:Date:From; b=QpdsFeQsx3bZbgyJmDmsxcOu1eVJgqsPgJrbZFFddDFJtTzj6gi7uTplng4JEI1qm XlLb7sTBKIqFngBSBH8TZdyIkfEA43r78iTzt3XZET/ZCfRIO3pjgEFTjz5GvqbftG mSZ4VIrFSDzEAkIZE8k0Ny4g3h+FooqppdbiI9g8= From: Eric Abrahamsen Date: Sun, 19 Feb 2023 14:08:42 -0800 Message-ID: <871qmlqped.fsf@ericabrahamsen.net> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=52.70.2.18; envelope-from=eric@ericabrahamsen.net; helo=mail.ericabrahamsen.net X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) --=-=-= Content-Type: text/plain 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 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=elispxrefdefclass.diff diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index 1c339d08148..f7cd9e90926 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -943,6 +943,10 @@ elisp--xref-infer-namespace cl-defmethod cl-defgeneric))) ;; (defun FUNC (... IDENT 'variable) + ((and (eql j 2) + (eq j-head 'defclass)) + ;; (defclass CLASS (... IDENT + 'function) ((eq j-head 'cond) ;; (cond ... (... IDENT 'variable) --=-=-=-- From unknown Mon Aug 11 19:06:25 2025 X-Loop: help-debbugs@gnu.org Subject: bug#61640: 30.0.50; Help Elisp xref recognize defclass parent classes Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 19 Feb 2023 22:43:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61640 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eric Abrahamsen , 61640@debbugs.gnu.org Received: via spool by 61640-submit@debbugs.gnu.org id=B61640.167684656728033 (code B ref 61640); Sun, 19 Feb 2023 22:43:01 +0000 Received: (at 61640) by debbugs.gnu.org; 19 Feb 2023 22:42:47 +0000 Received: from localhost ([127.0.0.1]:49873 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTsOM-0007I5-RY for submit@debbugs.gnu.org; Sun, 19 Feb 2023 17:42:47 -0500 Received: from mail-wr1-f44.google.com ([209.85.221.44]:44883) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTsOK-0007Hm-Oa for 61640@debbugs.gnu.org; Sun, 19 Feb 2023 17:42:45 -0500 Received: by mail-wr1-f44.google.com with SMTP id b10so1012867wrx.11 for <61640@debbugs.gnu.org>; Sun, 19 Feb 2023 14:42:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=2xYIqdR1DAo7nuFz1Pl50I7gbqD1L+2QEkwNEUG8Ads=; b=AS5KLJ4I8flBr818QswdA+vyuGBU7XqbWSzwDKhAw186RSUTwgi7cxnx0Wr43OMmkh CHoJvbQAPS43/d5I1YhajB3VNI0QtoZ+l7liUADrhTTPMvSrIrjAPqfcykhtzINNt2fl SyDqR3Q5cBp9FmG8uBvCuZILvFLFfKCsPJiQ17NnlbTie4UwvFebtBU+VpibwaDX13YQ O895O4A1Oz71NEzlSynWrSmiVeE1u6GtY1dFcy+mFufVVjcNhekW6OibfxF94XHxQki8 RAPROH8vAvtlxfeMjU112CZ4wZXTyy9V5wrzG4uHF8PkD0BajjzQDBphndPwmgj/m0UO Wo0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=2xYIqdR1DAo7nuFz1Pl50I7gbqD1L+2QEkwNEUG8Ads=; b=pwhrdkacZtyna6B0Hct6oMWwgwcK2yYZvGMpHYorNDP+vvDT3D05ftr+W9W3Hsd31e 5h9bfH5GffNoCvuFTgdUbegPvh53Q0QDV56J9/eJS3dTA2HX8DXl8VUZLjrYqJI+Mfqk kqCadnyGMqnLiwkqFPJuMLsUs+9mqS+VDQNCpni5WqCN8UZITa4o3hy4+VN9nsMR5CXz tkVi1dfvsmoNJn0+QzaKwJWh4ziUI1pk33RKiAwNv66TDx4bGMNW8nbASiYrEsjTliNd 3DNJ4yA53H4QJe6Ca0aOIrh60NTLaU7Sy0y4Gp9Cy80h2zgYne7xopLAuLoOwGgzeXZL loyA== X-Gm-Message-State: AO0yUKVqmrcHCb4su6AujIYQpXptB9xF4BIIQVrsfZ5sr2dyV6bVTLYu 8yGd63RVycItg/qefgp4mOQ= X-Google-Smtp-Source: AK7set+mBZ1/EAnkXc/BsWDRiKkpTNojAo8Esrvf6o9WzcUm7LRaPOvNgFW9VxQhLAtasXjhNUZIbA== X-Received: by 2002:a5d:5002:0:b0:2c5:4c7d:53ab with SMTP id e2-20020a5d5002000000b002c54c7d53abmr397981wrt.20.1676846547765; Sun, 19 Feb 2023 14:42:27 -0800 (PST) Received: from [192.168.0.2] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id t14-20020adfe10e000000b002c56af32e8csm2107913wrz.35.2023.02.19.14.42.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 19 Feb 2023 14:42:27 -0800 (PST) Message-ID: Date: Mon, 20 Feb 2023 00:42:25 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Content-Language: en-US References: <871qmlqped.fsf@ericabrahamsen.net> From: Dmitry Gutov In-Reply-To: <871qmlqped.fsf@ericabrahamsen.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.9 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) Hi! On 20/02/2023 00:08, Eric Abrahamsen wrote: > 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 for the patch. Could you try including a corresponding test? There are examples in test/lisp/progmodes/elisp-mode-tests.el, see the ones using the helper xref-elisp-deftest, starting with line 395. From unknown Mon Aug 11 19:06:25 2025 X-Loop: help-debbugs@gnu.org Subject: bug#61640: 30.0.50; Help Elisp xref recognize defclass parent classes Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 19 Feb 2023 23:46:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61640 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dmitry Gutov Cc: 61640@debbugs.gnu.org Received: via spool by 61640-submit@debbugs.gnu.org id=B61640.167685034711506 (code B ref 61640); Sun, 19 Feb 2023 23:46:02 +0000 Received: (at 61640) by debbugs.gnu.org; 19 Feb 2023 23:45:47 +0000 Received: from localhost ([127.0.0.1]:49954 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTtNK-0002zV-S6 for submit@debbugs.gnu.org; Sun, 19 Feb 2023 18:45:47 -0500 Received: from mail.ericabrahamsen.net ([52.70.2.18]:42352) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTtNJ-0002zI-0K for 61640@debbugs.gnu.org; Sun, 19 Feb 2023 18:45:45 -0500 Received: from localhost (c-71-197-232-41.hsd1.wa.comcast.net [71.197.232.41]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 10312FA089; Sun, 19 Feb 2023 23:45:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net; s=mail; t=1676850339; bh=y9a/2YhcYdVX0NClZ6uoCqDbwS4gopfX4XePTqSd7JY=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=W4EB3XUXQpu31hY/C81sfzoJrQZdOJeRSYxK2iNdjw24sgn1aoyRX8aSNyg4tztHF Di8Mx61JCvZapr10up7SJl5bPgTy2eB5QmtGmbhRP8uGXnl1jq384gdcpFdhIalieJ 8DKGywQFyjC2DRp5ianVqxt6GZ4ePVmsMexp7KIo= From: Eric Abrahamsen In-Reply-To: (Dmitry Gutov's message of "Mon, 20 Feb 2023 00:42:25 +0200") References: <871qmlqped.fsf@ericabrahamsen.net> Date: Sun, 19 Feb 2023 15:45:37 -0800 Message-ID: <87y1otgqxq.fsf@ericabrahamsen.net> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Dmitry Gutov writes: > Hi! > > On 20/02/2023 00:08, Eric Abrahamsen wrote: >> 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 for the patch. Could you try including a corresponding test? > > There are examples in test/lisp/progmodes/elisp-mode-tests.el, see the > ones using the helper xref-elisp-deftest, starting with line 395. There's a lot going on in there! The tests using xref-elisp-deftest look like they're mostly aimed at correctly finding definitions, which isn't the problem here: the defclass is always found correctly *if* xref infers the namespace as 'function. 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... From unknown Mon Aug 11 19:06:25 2025 MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) X-Loop: help-debbugs@gnu.org From: help-debbugs@gnu.org (GNU bug Tracking System) To: Eric Abrahamsen Subject: bug#61640: closed (Re: bug#61640: 30.0.50; Help Elisp xref recognize defclass parent classes) Message-ID: References: <717e900b-1ccf-ad08-8949-eacce0c0e606@yandex.ru> <871qmlqped.fsf@ericabrahamsen.net> X-Gnu-PR-Message: they-closed 61640 X-Gnu-PR-Package: emacs Reply-To: 61640@debbugs.gnu.org Date: Mon, 20 Feb 2023 01:06:02 +0000 Content-Type: multipart/mixed; boundary="----------=_1676855162-19586-1" This is a multi-part message in MIME format... ------------=_1676855162-19586-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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@debbugs.gnu.org. --=20 61640: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D61640 GNU Bug Tracking System Contact help-debbugs@gnu.org with problems ------------=_1676855162-19586-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 61640-done) by debbugs.gnu.org; 20 Feb 2023 01:05:42 +0000 Received: from localhost ([127.0.0.1]:49996 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTucf-00055M-Ra for submit@debbugs.gnu.org; Sun, 19 Feb 2023 20:05:42 -0500 Received: from mail-wr1-f54.google.com ([209.85.221.54]:33712) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTucd-000557-9A for 61640-done@debbugs.gnu.org; Sun, 19 Feb 2023 20:05:40 -0500 Received: by mail-wr1-f54.google.com with SMTP id c17so1117672wrx.0 for <61640-done@debbugs.gnu.org>; Sun, 19 Feb 2023 17:05:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=j3i7VWge+NuOIGiCf+jgNpkeK4+ZXU7dFB9hQ4dlj30=; b=e1N5KThMOESdzjJ99hxrhogbXCPzIpuQd2nlUcGAoOqwYdoOWN6jfrMgFPs9MHyiKo VxXHrJhx6gBJbJy5Kw8QZEiekEuOxcyQMGj2RrBLBIuflZ74q99ljMhwuVwIncJequBO /J+NY8PUCKrZtOZq/CH+6IoWPftjfvjdhakQBpXoSieKyjx1n+J0ZwVoduzqHJmmXXgU oWpCPNZHl9CQc5xO3FiQelCRURKdt5auBiZlqTWsP+0kTRylGQ+5hRmp14xDJI2aDCoQ 7yWu/ZWNVCWbXGUMH3VFI25eqqle4KXGRJ/cCLeho7BZfZYX3+VskwaiYBFzVwZYyFBV gmoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:cc:to :content-language:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=j3i7VWge+NuOIGiCf+jgNpkeK4+ZXU7dFB9hQ4dlj30=; b=MBWjjQKCyci7Q7QH/mvwPgaxbdh5Pnlv3TVqd5N7XVo0l93H8zTMatN0iWdZvdjAbs xYsnqPzn5WE1bN9Y1UqMak2AY6569XsEHRlKpNnfaoBkZOrFOSFTC53ilyUAiz1gybRs 6pCeLHyTSkMvLbo77aYAzBNni/3AXL5O2bLKoyHIPHz534cuy36As6+OzWqjwTTlszlJ C63r7xn159H7NnTBb8azYZjhs8c5Q27C/oEjFJEtXMNgO+UOZSWbxrqRm0UnKWyDLz03 jwdpHSNKGXlJWongwN2OqajxVouVGidLBimZx72Rque9QS3jxlxGSmYwZdGgQtVea/s7 m6Xw== X-Gm-Message-State: AO0yUKWDoIMnUZrTt7zVwcs+ibJDfZ4lzrj9CVD2j6JaQ6qJwRgAE/3L /yiC+9C54AcpdeAdta8s0gI= X-Google-Smtp-Source: AK7set/7U7Tiuxhm+Ew88uelY3dIpH8rKGkhlVaPhywppjdu/HCiU4HPHD/47o+gqmpaH4WGxW2GAA== X-Received: by 2002:adf:e7cb:0:b0:2c5:8b8d:e5e5 with SMTP id e11-20020adfe7cb000000b002c58b8de5e5mr811939wrn.1.1676855133098; Sun, 19 Feb 2023 17:05:33 -0800 (PST) Received: from [192.168.0.2] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id z16-20020adfec90000000b002c54737e908sm10488600wrn.91.2023.02.19.17.05.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 19 Feb 2023 17:05:32 -0800 (PST) Message-ID: <717e900b-1ccf-ad08-8949-eacce0c0e606@yandex.ru> Date: Mon, 20 Feb 2023 03:05:31 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: bug#61640: 30.0.50; Help Elisp xref recognize defclass parent classes Content-Language: en-US To: Eric Abrahamsen References: <871qmlqped.fsf@ericabrahamsen.net> <87y1otgqxq.fsf@ericabrahamsen.net> From: Dmitry Gutov In-Reply-To: <87y1otgqxq.fsf@ericabrahamsen.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Score: -0.9 (/) X-Debbugs-Envelope-To: 61640-done Cc: 61640-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.9 (-) 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. ------------=_1676855162-19586-1 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by debbugs.gnu.org; 19 Feb 2023 22:08:56 +0000 Received: from localhost ([127.0.0.1]:49835 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTrrc-0001bY-3g for submit@debbugs.gnu.org; Sun, 19 Feb 2023 17:08:56 -0500 Received: from lists.gnu.org ([209.51.188.17]:47934) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTrra-0001bR-O7 for submit@debbugs.gnu.org; Sun, 19 Feb 2023 17:08:55 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pTrra-0001Qq-Ic for bug-gnu-emacs@gnu.org; Sun, 19 Feb 2023 17:08:54 -0500 Received: from mail.ericabrahamsen.net ([52.70.2.18]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pTrrY-0008Vr-Tr for bug-gnu-emacs@gnu.org; Sun, 19 Feb 2023 17:08:54 -0500 Received: from localhost (c-71-197-232-41.hsd1.wa.comcast.net [71.197.232.41]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 95F95FA089 for ; Sun, 19 Feb 2023 22:08:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net; s=mail; t=1676844524; bh=QuPm7J7xAh5Swcbns7UQmHVB5FNH6VbVdi0bPejf9SY=; h=From:To:Subject:Date:From; b=QpdsFeQsx3bZbgyJmDmsxcOu1eVJgqsPgJrbZFFddDFJtTzj6gi7uTplng4JEI1qm XlLb7sTBKIqFngBSBH8TZdyIkfEA43r78iTzt3XZET/ZCfRIO3pjgEFTjz5GvqbftG mSZ4VIrFSDzEAkIZE8k0Ny4g3h+FooqppdbiI9g8= From: Eric Abrahamsen To: bug-gnu-emacs@gnu.org Subject: 30.0.50; Help Elisp xref recognize defclass parent classes Date: Sun, 19 Feb 2023 14:08:42 -0800 Message-ID: <871qmlqped.fsf@ericabrahamsen.net> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=52.70.2.18; envelope-from=eric@ericabrahamsen.net; helo=mail.ericabrahamsen.net X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.4 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.4 (--) --=-=-= Content-Type: text/plain 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 --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=elispxrefdefclass.diff diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el index 1c339d08148..f7cd9e90926 100644 --- a/lisp/progmodes/elisp-mode.el +++ b/lisp/progmodes/elisp-mode.el @@ -943,6 +943,10 @@ elisp--xref-infer-namespace cl-defmethod cl-defgeneric))) ;; (defun FUNC (... IDENT 'variable) + ((and (eql j 2) + (eq j-head 'defclass)) + ;; (defclass CLASS (... IDENT + 'function) ((eq j-head 'cond) ;; (cond ... (... IDENT 'variable) --=-=-=-- ------------=_1676855162-19586-1-- From unknown Mon Aug 11 19:06:25 2025 X-Loop: help-debbugs@gnu.org Subject: bug#61640: 30.0.50; Help Elisp xref recognize defclass parent classes Resent-From: Eric Abrahamsen Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 20 Feb 2023 01:44:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 61640 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 61640@debbugs.gnu.org Cc: dgutov@yandex.ru Received: via spool by 61640-submit@debbugs.gnu.org id=B61640.167685743823733 (code B ref 61640); Mon, 20 Feb 2023 01:44:01 +0000 Received: (at 61640) by debbugs.gnu.org; 20 Feb 2023 01:43:58 +0000 Received: from localhost ([127.0.0.1]:50046 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTvDi-0006Aj-71 for submit@debbugs.gnu.org; Sun, 19 Feb 2023 20:43:58 -0500 Received: from mail.ericabrahamsen.net ([52.70.2.18]:47740) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1pTvDg-0006AU-9p for 61640@debbugs.gnu.org; Sun, 19 Feb 2023 20:43:56 -0500 Received: from localhost (c-71-197-232-41.hsd1.wa.comcast.net [71.197.232.41]) (Authenticated sender: eric@ericabrahamsen.net) by mail.ericabrahamsen.net (Postfix) with ESMTPSA id 881DFFA0BD; Mon, 20 Feb 2023 01:43:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericabrahamsen.net; s=mail; t=1676857429; bh=H7EoA0SBuWFWcfSxtxREmjZbzCuxCu4DdfTFgNAyH44=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=s62qVC3YSgSRUlZAl+ixin6MdtO1BtMvbyDyYqBPaLuuqRDuvikUmd4zCnw38CYB/ ksiCAESYqMQzLiKBbfMdKOaaTVdtTNyOWpHd/W8ue8ViFh24GhkFQkUB8M7rN5TcYz 1hvHj51XQex6+DexsHhqyl5feLN1NNqD0/SaVafU= From: Eric Abrahamsen In-Reply-To: <717e900b-1ccf-ad08-8949-eacce0c0e606@yandex.ru> (Dmitry Gutov's message of "Mon, 20 Feb 2023 03:05:31 +0200") References: <871qmlqped.fsf@ericabrahamsen.net> <87y1otgqxq.fsf@ericabrahamsen.net> <717e900b-1ccf-ad08-8949-eacce0c0e606@yandex.ru> Date: Sun, 19 Feb 2023 17:43:48 -0800 Message-ID: <87ttzhglgr.fsf@ericabrahamsen.net> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Dmitry Gutov writes: > 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. Thanks!