From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.bugs Subject: bug#66683: 30.0.50; xref-find-references returns duplicates Date: Mon, 23 Oct 2023 22:11:51 +0300 Message-ID: References: <87h6mioetl.fsf@iki.fi> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="6824"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 To: Petteri Hintsanen , 66683@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Oct 23 21:13:01 2023 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qv0MF-0001Xz-Cn for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 23 Oct 2023 21:13:01 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qv0Lt-0001X5-Av; Mon, 23 Oct 2023 15:12:38 -0400 Original-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 1qv0Lr-0001WT-8h for bug-gnu-emacs@gnu.org; Mon, 23 Oct 2023 15:12:35 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qv0Lq-00029S-EN for bug-gnu-emacs@gnu.org; Mon, 23 Oct 2023 15:12:35 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qv0MH-0001Xp-Ly for bug-gnu-emacs@gnu.org; Mon, 23 Oct 2023 15:13:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Dmitry Gutov Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 23 Oct 2023 19:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66683 X-GNU-PR-Package: emacs Original-Received: via spool by 66683-submit@debbugs.gnu.org id=B66683.16980883585899 (code B ref 66683); Mon, 23 Oct 2023 19:13:01 +0000 Original-Received: (at 66683) by debbugs.gnu.org; 23 Oct 2023 19:12:38 +0000 Original-Received: from localhost ([127.0.0.1]:51706 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qv0Lr-0001Ww-NX for submit@debbugs.gnu.org; Mon, 23 Oct 2023 15:12:38 -0400 Original-Received: from wout2-smtp.messagingengine.com ([64.147.123.25]:47943) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qv0Ll-0001Wc-U6 for 66683@debbugs.gnu.org; Mon, 23 Oct 2023 15:12:33 -0400 Original-Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 0DA1E3200918; Mon, 23 Oct 2023 15:11:53 -0400 (EDT) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Mon, 23 Oct 2023 15:11:54 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gutov.dev; h=cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:sender:subject:subject:to:to; s=fm2; t= 1698088313; x=1698174713; bh=WrltwpDq41TDCsSwpBIlAoBO3GPylLU0Gut 0ViUeU+M=; b=USSPtQ09CU+wvvmJYDPkTUUkbVgIaZqHhiO5Gop2sS052lEGtxV +xw/eRP9AkImDzSNx0AKwm20jaBdXoDvYQMtpbBmEOKV0SOiv7VV47g/XKgAA8wN p490CdxKqLw4OR0wKEbFXKSRTjt+xy7plrjl5yU6SaOK8kqdTJbTj5Y4DA8cDUNp qZhhygELIyXm1KUdMBrSrJAVbB8xDhl2d1vtLqRdX/benxX3qxNZdPrMGcwFhcNk c/JayA9kEXGgS+jC2uk2uJ+pUyy3lKopmSNE0ZyLENeov9qvJQyg9a2yQGalsNUe hGRTp8tHjw4mtRnjew3+BH5TjaGoy6TIkcg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1698088313; x= 1698174713; bh=WrltwpDq41TDCsSwpBIlAoBO3GPylLU0Gut0ViUeU+M=; b=r luokBiX06Mg4m2aMIhz+6CkYPHWqB7jroJTW3WSFlJP8uLUeFUdUoh4/mgchmRge E4bA2LOHTA72pcfOUhblOdErdFI9cuJsVnM5nJ4p58KhA+w/1Hw+XpNv86ldfFaN PwtKWyLimYGCgE/+0kd185Yj3IitHBu7TTf1B9JEdl4TSvndZeUeC44hPUSgl2jA 0Zh6DeBhAkxprD88FvrfijDAy4hIk2TU6o2Z0K3pBJmecNXl/S7j7/VI2My3tM8p mPgCQegtB2Jpx5p7l+w6cwK0bfzqtiQeqOtNGuOeKoR2EgF/Toq9/f0GhgBCgiyR WIS0eEn14ND9RZETycZ5Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrkeeigddufedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfuffvfhfhjggtgfesthejredttdefjeenucfhrhhomhepffhmihht rhihucfiuhhtohhvuceoughmihhtrhihsehguhhtohhvrdguvghvqeenucggtffrrghtth gvrhhnpeeghedthedujeeiteeutddtjeekheejteeukeehffdutdejuedvfeevueeviedu udenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegumh hithhrhiesghhuthhovhdruggvvh X-ME-Proxy: Feedback-ID: i0e71465a:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 23 Oct 2023 15:11:52 -0400 (EDT) Content-Language: en-US In-Reply-To: <87h6mioetl.fsf@iki.fi> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:273049 Archived-At: On 22/10/2023 18:29, Petteri Hintsanen wrote: > [This is a bug report from an old issue discussed in > help-gnu-emacs@gnu.org (dated 19 Dec 2022, Message-ID > <7ac4ca06-cbbb-1c8d-0f59-2ccd5d3232f2@iki.fi>). Dmitry Gutov asked me > to file a bug, which I unfortunately forgot to do that time. Hence > filing now.] > > I discovered a somewhat peculiar case where xref-find-references returns > duplicate references for elisp symbols. > > Recipe: > > 1. Create a file ~/foo/bar/bar.el with contents: > > (defun bar-f ()) > > (defun bar-g () > (bar-f)) > > (provide 'bar) > > 2. Create a git repo in ~/foo/bar and commit bar.el. This is just to > set up a project that Emacs can recognize. > > 3. Start emacs -Q and eval > > (add-to-list 'load-path "~/foo") > (add-to-list 'load-path "~/foo/bar") > (require 'bar) > > 4. C-x C-f ~/foo/bar/bar.el > > 5. M-x xref-find-references RET bar-f RET > > On my machine I get > > bar.el > 1: (defun bar-f ()) > 4: (bar-f)) > 1: (defun bar-f ()) > 4: (bar-f)) > > i.e. references are duplicated. The issue seems to be in load-path: if > I remove (add-to-list 'load-path "~/foo") from step (3) above, then I > don't see any duplicates. Hi! Thanks for the report and the reminder. Could you try this little patch below? diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index fd788ec8f32..81618428bf3 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -281,9 +281,10 @@ xref-backend-references (xref-references-in-directory identifier dir) (message "Searching %s... done" dir))) (let ((pr (project-current t))) - (cons - (xref--project-root pr) - (project-external-roots pr))))) + (project-combine-directories + (cons + (xref--project-root pr) + (project-external-roots pr)))))) (cl-defgeneric xref-backend-apropos (backend pattern) "Find all symbols that match PATTERN string.