Alexander-Miller / treemacs

GNU General Public License v3.0
2.05k stars 151 forks source link

wrong-type-argument hash-table-p nil #1105

Open owensys opened 1 month ago

owensys commented 1 month ago

Environment: Windows10, emacs29.1, treemacs v3.1 (installed 2024.05.12) @ Emacs 29.1

I use mannually cloned dependency packages and add to load-path.

treemacs-add-project and treemacs-add-and-display-current-project got an error

Debugger entered--Lisp error: (wrong-type-argument hash-table-p nil)
  gethash("d:/xxx/yyy" nil nil)
  (let* ((key (progn (or (progn (and (memq (type-of self) cl-struct-treemacs-project-tags) t)) (signal 'wrong-type-argument (list 'treemacs-project self))) (aref self 2)))) (gethash key treemacs-dom nil))
  (type-of (let* ((key (progn (or (progn (and (memq (type-of self) cl-struct-treemacs-project-tags) t)) (signal 'wrong-type-argument (list 'treemacs-project self))) (aref self 2)))) (gethash key treemacs-dom nil)))
  (memq (type-of (let* ((key (progn (or (progn (and (memq (type-of self) cl-struct-treemacs-project-tags) t)) (signal 'wrong-type-argument (list 'treemacs-project self))) (aref self 2)))) (gethash key treemacs-dom nil))) cl-struct-treemacs-dom-node-tags)
  (and (memq (type-of (let* ((key (progn (or (progn (and (memq (type-of self) cl-struct-treemacs-project-tags) t)) (signal 'wrong-type-argument (list 'treemacs-project self))) (aref self 2)))) (gethash key treemacs-dom nil))) cl-struct-treemacs-dom-node-tags) t)
  (progn (and (memq (type-of (let* ((key (progn (or (progn (and (memq (type-of self) cl-struct-treemacs-project-tags) t)) (signal 'wrong-type-argument (list 'treemacs-project self))) (aref self 2)))) (gethash key treemacs-dom nil))) cl-struct-treemacs-dom-node-tags) t))
  (or (progn (and (memq (type-of (let* ((key (progn (or (progn (and (memq (type-of self) cl-struct-treemacs-project-tags) t)) (signal 'wrong-type-argument (list 'treemacs-project self))) (aref self 2)))) (gethash key treemacs-dom nil))) cl-struct-treemacs-dom-node-tags) t)) (signal 'wrong-type-argument (list 'treemacs-dom-node (let* ((key (progn (or (progn (and (memq (type-of self) cl-struct-treemacs-project-tags) t)) (signal 'wrong-type-argument (list 'treemacs-project self))) (aref self 2)))) (gethash key treemacs-dom nil)))))
  (progn (or (progn (and (memq (type-of (let* ((key (progn (or (progn (and (memq (type-of self) cl-struct-treemacs-project-tags) t)) (signal 'wrong-type-argument (list 'treemacs-project self))) (aref self 2)))) (gethash key treemacs-dom nil))) cl-struct-treemacs-dom-node-tags) t)) (signal 'wrong-type-argument (list 'treemacs-dom-node (let* ((key (progn (or (progn (and (memq (type-of self) cl-struct-treemacs-project-tags) t)) (signal 'wrong-type-argument (list 'treemacs-project self))) (aref self 2)))) (gethash key treemacs-dom nil))))) (aref (let* ((key (progn (or (progn (and (memq (type-of self) cl-struct-treemacs-project-tags) t)) (signal 'wrong-type-argument (list 'treemacs-project self))) (aref self 2)))) (gethash key treemacs-dom nil)) 5))
  treemacs-project->position(#s(treemacs-project :name ".emacs.d" :path "d:/xxx/yyy" :path-status local-readable :is-disabled? nil))
  (goto-char (treemacs-project->position project))
  (prog1 (point) (goto-char (treemacs-project->position project)))
Alexander-Miller commented 1 month ago

(wrong-type-argument hash-table-p nil) gethash("d:/xxx/yyy" nil nil)

This should only happen when a backing data structure is nil, which should never happen under normal circumstances. I will need more information to debug this:

Your entire treemacs config. A complete stack trace, this one starts somewhere in the middle. And finally a step-by-step guide to reproduce the problem, starting from a freshly started Emacs.