xref-find-references show err message " Invalid slot type: xref-file-location, file, string, nil"

Bug #1850641 reported by tom
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
global-tags.el
Fix Released
Undecided
Felipe Lema

Bug Description

when I use the global-tags.el . when I use xref-find-references, some symbol works well, but some symbol not. The error message is
eieio--validate-slot-value: Invalid slot type: xref-file-location, file, string, nil
But if I use counsel-gtags-find-reference, they all works well.

I try again after run toggle-debug-on-error. The stacktrace is (the attachmen is screenshot)

Debugger entered--Lisp error: (invalid-slot-type xref-file-location file string nil)
  signal(invalid-slot-type (xref-file-location file string nil))
  eieio--validate-slot-value(#s(eieio--class xref-file-location "A file location is a file/line/column triple.\nLine numbers start from 1 and columns from 0." (#s(eieio--class xref-location$
  eieio-oset(#<xref-file-location xref-file-location-1560a1e34f70> file nil)
  #f(compiled-function (obj slots) "Set slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the constructor routine." #<bytecode 0x1560a0ccd889>)(#<xref-file-location $
  apply(#f(compiled-function (obj slots) "Set slots of OBJ with SLOTS which is a list of name/value pairs.\nCalled from the constructor routine." #<bytecode 0x1560a0ccd889>) #<xref-file-loc$
  shared-initialize(#<xref-file-location xref-file-location-1560a1e34f70> (:file nil :line nil :column nil))
  #f(compiled-function (this &optional slots) "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements are th$
  apply(#f(compiled-function (this &optional slots) "Construct the new object THIS based on SLOTS.\nSLOTS is a tagged list where odd numbered elements are tags, and\neven numbered elements $
  initialize-instance(#<xref-file-location xref-file-location-1560a1e34f70> (:file nil :line nil :column nil))
  #f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static method $
  apply(#f(compiled-function (class &rest slots) "Default constructor for CLASS `eieio-default-superclass'.\nSLOTS are the initialization slots used by `initialize-instance'.\nThis static m$
  make-instance(xref-file-location :file nil :line nil :column nil)
  xref-make-file-location(nil nil nil)
  (xref-make \.description (xref-make-file-location \.file \.line \.column))
  (let ((\.description (cdr (assq 'description alist))) (\.file (cdr (assq 'file alist))) (\.line (cdr (assq 'line alist))) (\.column (cdr (assq 'column alist)))) (xref-make \.description ($
  (let ((alist location-description)) (let ((\.description (cdr (assq 'description alist))) (\.file (cdr (assq 'file alist))) (\.line (cdr (assq 'line alist))) (\.column (cdr (assq 'column $
  global-tags--as-xref-location(nil)
  mapcar(global-tags--as-xref-location (nil))
  cl-mapcar(global-tags--as-xref-location (nil))
  global-tags--get-xref-locations(#("insert" 0 6 (face font-lock-function-name-face fontified t)) reference)
  (progn (global-tags--get-xref-locations symbol 'reference))
  (closure (t) (_backend symbol) (progn (global-tags--get-xref-locations symbol 'reference)))(global #("insert" 0 6 (face font-lock-function-name-face fontified t)))
  apply((closure (t) (_backend symbol) (progn (global-tags--get-xref-locations symbol 'reference))) global #("insert" 0 6 (face font-lock-function-name-face fontified t)))
  xref-backend-references(global #("insert" 0 6 (face font-lock-function-name-face fontified t)))
  #f(compiled-function () #<bytecode 0x1560a1e0746d>)()
  ivy-xref-show-xrefs(#f(compiled-function () #<bytecode 0x1560a1e0746d>) ((window . #<window 1 on parser.lua>) (display-action)))
  xref--show-xrefs(#f(compiled-function () #<bytecode 0x1560a1e0746d>) nil)
  xref--find-xrefs(#("insert" 0 6 (face font-lock-function-name-face fontified t)) references #("insert" 0 6 (face font-lock-function-name-face fontified t)) nil)
  xref-find-references(#("insert" 0 6 (face font-lock-function-name-face fontified t)))
  funcall-interactively(xref-find-references #("insert" 0 6 (face font-lock-function-name-face fontified t)))
  call-interactively(xref-find-references nil nil)
  command-execute(xref-find-references)

Revision history for this message
tom (tpl-a1406) wrote :
Revision history for this message
tom (tpl-a1406) wrote :

I add a test case. In the attach, when I run xref-find-references for symbol lpeg, the err can reappear.

Revision history for this message
Felipe Lema (morenonatural) wrote :

fixed @ https://git.launchpad.net/global-tags.el/commit/?id=818171d4b4af84e9a4c07a65fa6a985bd4ca8b2a

Thanks for the test case. That was really helpful to pinpoint the problem.

Changed in global-tags.el:
status: New → Fix Released
assignee: nobody → Felipe Lema (morenonatural)
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.