emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ELPA] New Package: phpinspect.el


From: Stefan Monnier
Subject: Re: [ELPA] New Package: phpinspect.el
Date: Sat, 12 Aug 2023 00:56:18 -0400
User-agent: Gnus/5.13 (Gnus v5.13)

> I would like to propose my package, phpinspect.el, to be added to GNU Elpa.

Done.

AFAICT the code has currently some significant problems in terms of
dependencies which make its compilation fail because variables are used
by macros during compilation when the var has not yet been defined, or
macros are used before they're defined, etc...

The patch below seems to make the compilation go through (and fixes
various warnings), but there are a lot of compilation warnings left
which you might want to check.  It also includes a few FIXMEs.


        Stefan


diff --git a/.gitignore b/.gitignore
index 9dfdcfc74a..8267c9df55 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,7 @@
 *.elc
 /benchmarks/profile.txt
-/.cask
\ No newline at end of file
+/.cask
+
+# ELPA-generated files
+/phpinspect-autoloads.el
+/phpinspect-pkg.el
diff --git a/benchmarks/parse-file.el b/benchmarks/parse-file.el
index 604ba2e833..7bea574fa6 100644
--- a/benchmarks/parse-file.el
+++ b/benchmarks/parse-file.el
@@ -1,3 +1,4 @@
+;; -*- lexical-binding: t; -*-
 
 (require 'phpinspect-parser)
 
@@ -13,25 +14,25 @@
 
     (message "Incremental parse (warmup):")
     (phpinspect-with-parse-context (phpinspect-make-pctx :incremental t)
-      (benchmark 1 '(phpinspect-parse-current-buffer)))
+      (benchmark-run 1 (phpinspect-parse-current-buffer)))
 
     (let ((bmap (phpinspect-make-bmap))
           (bmap2 (phpinspect-make-bmap)))
       (message "Incremental parse:")
       (phpinspect-with-parse-context (phpinspect-make-pctx :incremental t 
:bmap bmap)
-        (benchmark 1 '(phpinspect-parse-current-buffer)))
+        (benchmark-run 1 (phpinspect-parse-current-buffer)))
 
       (garbage-collect)
 
       (message "Incremental parse (no edits):")
       (phpinspect-with-parse-context (phpinspect-make-pctx :incremental t 
:bmap bmap2 :previous-bmap bmap :edtrack (phpinspect-make-edtrack))
-        (benchmark 1 '(phpinspect-parse-current-buffer)))
+        (benchmark-run 1 (phpinspect-parse-current-buffer)))
 
       (garbage-collect)
 
       (message "Incremental parse repeat (no edits):")
       (phpinspect-with-parse-context (phpinspect-make-pctx :incremental t 
:previous-bmap bmap2 :edtrack (phpinspect-make-edtrack))
-        (benchmark 1 '(phpinspect-parse-current-buffer)))
+        (benchmark-run 1 (phpinspect-parse-current-buffer)))
 
       (garbage-collect)
 
@@ -45,13 +46,13 @@
         (message "Incremental parse after buffer edit:")
         ;; Removes closing curly brace of __construct
         (goto-char 9062)
-        (delete-backward-char 1)
+        (delete-char -1)
 
         (garbage-collect)
 
         (phpinspect-edtrack-register-edit edtrack 9061 9061 1)
         (phpinspect-with-parse-context (phpinspect-make-pctx :bmap bmap-after 
:incremental t :previous-bmap bmap :edtrack edtrack)
-          (benchmark 1 '(phpinspect-parse-current-buffer)))
+          (benchmark-run 1 (phpinspect-parse-current-buffer)))
 
         (phpinspect-edtrack-clear edtrack)
         (insert "{")
@@ -65,7 +66,7 @@
         ;;(profiler-start 'cpu)
         (message "Incremental parse after 2 more edits:")
         (phpinspect-with-parse-context (phpinspect-make-pctx :incremental t 
:previous-bmap bmap-after :edtrack edtrack)
-          (benchmark 1 '(phpinspect-parse-current-buffer)))
+          (benchmark-run 1 (phpinspect-parse-current-buffer)))
 
         ;; (save-current-buffer
         ;;   (profiler-stop)
@@ -78,9 +79,9 @@
 
     (garbage-collect)
     (message "Bare (no token reuse) parse (warmup):")
-    (benchmark 1 '(phpinspect-parse-current-buffer))
+    (benchmark-run 1 (phpinspect-parse-current-buffer))
 
 
     (garbage-collect)
     (message "Bare (no token reuse) parse:")
-    (benchmark 1 '(phpinspect-parse-current-buffer))))
+    (benchmark-run 1 (phpinspect-parse-current-buffer))))
diff --git a/benchmarks/splay-tree.el b/benchmarks/splay-tree.el
index 261ddfe08a..934487d199 100644
--- a/benchmarks/splay-tree.el
+++ b/benchmarks/splay-tree.el
@@ -1,3 +1,4 @@
+;; -*- lexical-binding: t; -*-
 
 
 (require 'phpinspect-splayt)
@@ -6,28 +7,28 @@
       (tree (phpinspect-make-splayt)))
   (message "Splay tree 10000 insertions:")
   (garbage-collect)
-  (benchmark
-   1 '(dotimes (i 10000)
-        (phpinspect-splayt-insert tree i 'value)))
+  (benchmark-run
+   1 (dotimes (i 10000)
+       (phpinspect-splayt-insert tree i 'value)))
 
   (message "Splay tree 10000 lookups:")
   (garbage-collect)
-  (benchmark
-   1 '(dotimes (i 10000)
-        (phpinspect-splayt-find tree i))))
+  (benchmark-run
+   1 (dotimes (i 10000)
+       (phpinspect-splayt-find tree i))))
 
 
 (let (map)
   (message "Hashtable 10000 insertions:")
   (garbage-collect)
-  (benchmark
-   1 '(progn
-        (setq map (make-hash-table :test #'eq :size 10000 :rehash-size 1.5))
-        (dotimes (i 10000)
-        (puthash i 'value map))))
+  (benchmark-run
+   1 (progn
+       (setq map (make-hash-table :test #'eq :size 10000 :rehash-size 1.5))
+       (dotimes (i 10000)
+         (puthash i 'value map))))
 
   (message "Hashtable 10000 lookups:")
   (garbage-collect)
-  (benchmark
-   1 '(dotimes (i 10000)
-        (gethash i map))))
+  (benchmark-run
+   1 (dotimes (i 10000)
+       (gethash i map))))
diff --git a/phpinspect-bmap.el b/phpinspect-bmap.el
index 0fded42705..2f2796e6fe 100644
--- a/phpinspect-bmap.el
+++ b/phpinspect-bmap.el
@@ -1,6 +1,6 @@
 ;;; phpinspect-bmap.el --- PHP parsing and completion package  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -25,7 +25,7 @@
 
 (require 'phpinspect-splayt)
 (require 'phpinspect-meta)
-(require 'phpinspect-changeset)
+;; (require 'phpinspect-changeset) ;; FIXME: Circular dependency :-(
 (require 'phpinspect-util)
 (require 'compat)
 
diff --git a/phpinspect-cache.el b/phpinspect-cache.el
index cdf89ee124..e33029378a 100644
--- a/phpinspect-cache.el
+++ b/phpinspect-cache.el
@@ -1,6 +1,6 @@
 ;;; phpinspect.el --- PHP parsing and completion package  -*- lexical-binding: 
t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -45,8 +45,7 @@ If its value is nil, it is created and then returned."
             "A `hash-table` with the root directories of projects
 as keys and project caches as values."))
 
-(cl-defgeneric phpinspect--cache-getproject
-    ((cache phpinspect--cache) (project-name string))
+(cl-defgeneric phpinspect--cache-getproject (cache project-name)
   "Get project by PROJECT-NAME that is located in CACHE.")
 
 (cl-defmethod phpinspect--cache-getproject
diff --git a/phpinspect-changeset.el b/phpinspect-changeset.el
index 7f19ed2201..382de3c730 100644
--- a/phpinspect-changeset.el
+++ b/phpinspect-changeset.el
@@ -1,6 +1,6 @@
 ;;; phpinspect-changeset.el --- Metadata changeset module  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -23,6 +23,8 @@
 
 ;;; Code:
 
+(require 'phpinspect-parse-context) ;; FIXME: Circular dependency :-(
+
 (define-inline phpinspect-make-changeset (meta)
   (inline-letevals (meta)
     (inline-quote
diff --git a/phpinspect-completion.el b/phpinspect-completion.el
index 59b7d7d823..f5546169d8 100644
--- a/phpinspect-completion.el
+++ b/phpinspect-completion.el
@@ -1,6 +1,6 @@
 ;;; phpinspect-type.el --- PHP parsing and completion package -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -97,11 +97,11 @@ candidate. Candidates can be indexed functions and 
variables.")
           :type phpinspect-buffer))
 
 
-(cl-defgeneric phpinspect-comp-strategy-supports (strategy (query 
phpinspect-completion-query) (context phpinspect--resolvecontext))
+(cl-defgeneric phpinspect-comp-strategy-supports (strategy query context)
   "Should return non-nil if STRATEGY should be deployed for QUERY
 and CONTEXT. All strategies must implement this method.")
 
-(cl-defgeneric phpinspect-comp-strategy-execute (strategy (query 
phpinspect-completion-query) (context phpinspect--resolvecontext))
+(cl-defgeneric phpinspect-comp-strategy-execute (strategy query context)
   "Should return a list of objects for which
 `phpinspect--make-completion' is implemented.")
 
diff --git a/phpinspect-edtrack.el b/phpinspect-edtrack.el
index bd065932ca..96fb77579b 100644
--- a/phpinspect-edtrack.el
+++ b/phpinspect-edtrack.el
@@ -24,6 +24,7 @@
 ;;; Code:
 
 (require 'phpinspect-util)
+(require 'phpinspect-meta)
 
 (eval-when-compile
   (phpinspect--declare-log-group 'edtrack))
@@ -73,11 +74,6 @@
 (defsubst phpinspect-edit-original-end (edit)
   (or (caar edit) 0))
 
-(defsubst phpinspect-edit-end (edit)
-  (let ((end (or (caar edit) 0))
-        (previous-edit (cdr edit)))
-    (+ end (phpinspect-edit-delta previous-edit))))
-
 (defsubst phpinspect-edit-delta (edit)
   (let ((delta (or (cdar edit) 0))
         (previous-edit edit))
@@ -85,6 +81,11 @@
       (setq delta (+ delta (cdar previous-edit))))
     delta))
 
+(defsubst phpinspect-edit-end (edit)
+  (let ((end (or (caar edit) 0))
+        (previous-edit (cdr edit)))
+    (+ end (phpinspect-edit-delta previous-edit))))
+
 (defsubst phpinspect-edtrack-original-position-at-point (track point)
   (let ((edit (phpinspect-edtrack-edits track))
         (encroached)
diff --git a/phpinspect-eldoc.el b/phpinspect-eldoc.el
index 8efa9b7e72..a1a28a6984 100644
--- a/phpinspect-eldoc.el
+++ b/phpinspect-eldoc.el
@@ -1,6 +1,6 @@
 ;;; phpinspect-eldoc.el --- PHP parsing and completion package  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -26,6 +26,7 @@
 (require 'phpinspect-meta)
 (require 'phpinspect-parser)
 (require 'phpinspect-resolve)
+(require 'phpinspect-buffer)
 
 (defvar phpinspect-eldoc-word-width 14
   "The maximum width of words in eldoc strings.")
@@ -38,11 +39,11 @@
           :type phpinspect-buffer))
 
 
-(cl-defgeneric phpinspect-eld-strategy-supports (strategy (query 
phpinspect-eldoc-query) (context phpinspect--resolvecontext))
+(cl-defgeneric phpinspect-eld-strategy-supports (strategy query context)
   "Should return non-nil if STRATEGY should be deployed for QUERY
 and CONTEXT. All strategies must implement this method.")
 
-(cl-defgeneric phpinspect-eld-strategy-execute (strategy (query 
phpinspect-eldoc-query) (context phpinspect--resolvecontext))
+(cl-defgeneric phpinspect-eld-strategy-execute (strategy query context)
   "Should return an object for which `phpinspect-eldoc-string' is 
implemented.")
 
 (cl-defgeneric phpinspect-eldoc-string (response)
diff --git a/phpinspect-parse-context.el b/phpinspect-parse-context.el
index fb2ae38db2..b3fcf12ffd 100644
--- a/phpinspect-parse-context.el
+++ b/phpinspect-parse-context.el
@@ -1,6 +1,6 @@
 ;;; phpinspect-parse-context.el --- PHP parsing context module  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021, 2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -25,7 +25,7 @@
 
 (require 'phpinspect-util)
 (require 'phpinspect-meta)
-(require 'phpinspect-changeset)
+;; (require 'phpinspect-changeset) ;; FIXME: Circular dependency :-(
 (require 'phpinspect-bmap)
 
 (defvar phpinspect-parse-context nil
@@ -36,7 +36,7 @@ parsing. Usually used in combination with
 (cl-defstruct (phpinspect-pctx (:constructor phpinspect-make-pctx))
   "Parser Context"
   (incremental nil)
-  (interrupt-threshold (time-convert '(2 . 1000))
+  (interrupt-threshold (time-convert '(2 . 1000) t)
                        :documentation
                        "After how much time `interrupt-predicate'
 should be polled. This is 2ms by default.")
@@ -98,7 +98,7 @@ thrown.")
     (inline-quote
      (progn
        (unless (phpinspect-pctx--start-time ,pctx)
-         (setf (phpinspect-pctx--start-time ,pctx) (time-convert nil)))
+         (setf (phpinspect-pctx--start-time ,pctx) (time-convert nil t)))
 
        ;; Interrupt when blocking too long while input is pending.
        (when (and (time-less-p (phpinspect-pctx-interrupt-threshold ,pctx)
@@ -107,6 +107,12 @@ thrown.")
          (phpinspect-pctx-cancel ,pctx)
          (throw 'phpinspect-parse-interrupted nil))))))
 
+
+(defsubst phpinspect-pctx-consume-whitespace (pctx)
+  (let ((whitespace (phpinspect-pctx-whitespace-before pctx)))
+    (setf (phpinspect-pctx-whitespace-before pctx) "")
+    whitespace))
+
 (define-inline phpinspect-pctx-register-token (pctx token start end)
   (inline-letevals (pctx)
     (inline-quote
@@ -117,11 +123,6 @@ thrown.")
   (inline-quote
    (setf (phpinspect-pctx-whitespace-before ,pctx) ,whitespace)))
 
-(defsubst phpinspect-pctx-consume-whitespace (pctx)
-  (let ((whitespace (phpinspect-pctx-whitespace-before pctx)))
-    (setf (phpinspect-pctx-whitespace-before pctx) "")
-    whitespace))
-
 (defun phpinspect-pctx-cancel (pctx)
   (phpinspect--log "Cancelling parse context")
   (dolist (changeset (phpinspect-pctx-changesets pctx))
diff --git a/phpinspect-parser.el b/phpinspect-parser.el
index d3d70a348b..fc1ae56734 100644
--- a/phpinspect-parser.el
+++ b/phpinspect-parser.el
@@ -1,6 +1,6 @@
 ;;; phpinspect-parser.el --- PHP parsing module  -*- lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -79,17 +79,18 @@ Type can be any of the token types returned by
       (phpinspect-comma-p token)
       (phpinspect-html-p token)))
 
-(defsubst phpinspect-end-of-statement-p (token)
-  (or (phpinspect-end-of-token-p token)
-      (phpinspect-block-p token)))
-
 (defsubst phpinspect-incomplete-block-p (token)
   (phpinspect-token-type-p token :incomplete-block))
 
+
 (defsubst phpinspect-block-p (token)
   (or (phpinspect-token-type-p token :block)
       (phpinspect-incomplete-block-p token)))
 
+(defsubst phpinspect-end-of-statement-p (token)
+  (or (phpinspect-end-of-token-p token)
+      (phpinspect-block-p token)))
+
 (defun phpinspect-end-of-use-p (token)
   (or (phpinspect-block-p token)
       (phpinspect-end-of-token-p token)))
@@ -184,6 +185,10 @@ Type can be any of the token types returned by
   (or (phpinspect-token-type-p token :array)
       (phpinspect-incomplete-array-p token)))
 
+
+(defsubst phpinspect-root-p (object)
+  (phpinspect-token-type-p object :root))
+
 (defsubst phpinspect-incomplete-root-p (token)
   (and (phpinspect-root-p token)
        (seq-find #'phpinspect-incomplete-token-p (cdr token))))
@@ -227,10 +232,6 @@ Type can be any of the token types returned by
 (defun phpinspect-use-keyword-p (token)
   (and (phpinspect-word-p token) (string= (car (last token)) "use")))
 
-
-(defsubst phpinspect-root-p (object)
-  (phpinspect-token-type-p object :root))
-
 (defsubst phpinspect-namespace-or-root-p (object)
   (or (phpinspect-namespace-p object)
       (phpinspect-root-p object)))
@@ -261,6 +262,7 @@ Type can be any of the token types returned by
   "Apply inverse of `phpinspect-class-p' to TOKEN."
   (not (phpinspect-class-p token)))
 
+(eval-and-compile
 (defun phpinspect-handler-func-name (handler-name)
   (intern (concat "phpinspect--" (symbol-name handler-name) "-handler")))
 
@@ -268,7 +270,7 @@ Type can be any of the token types returned by
   (intern (concat "phpinspect--" (symbol-name handler-name) 
"-handler-regexp")))
 
 (defun phpinspect-parser-func-name (name &optional suffix)
-  (intern (concat "phpinspect--parse-" (symbol-name name) (if suffix (concat 
"-" suffix) ""))))
+  (intern (concat "phpinspect--parse-" (symbol-name name) (if suffix (concat 
"-" suffix) "")))))
 
 (defmacro phpinspect-defhandler (name arguments docstring attribute-alist 
&rest body)
   "Define a parser handler that becomes available for use with 
phpinspect-parse.
@@ -552,15 +554,12 @@ parsing incrementally."
          (incremental-name (phpinspect-parser-func-name name "incremental")))
 
     `(let ((parser (phpinspect-make-parser ,@parameters)))
-       (defconst ,simple-name nil)
-       (defconst ,incremental-name nil)
+       (defconst ,simple-name parser)
+       (defconst ,incremental-name parser)
 
        (put (quote ,simple-name) 'phpinspect--parser t)
        (put (quote ,incremental-name) 'phpinspect--incremental-parser t)
 
-       (setf ,simple-name parser)
-       (setf ,incremental-name parser)
-
        ;; Stub function to please the byte compiler (real function will be
        ;; defined by `phpinspect-define-parser-functions'.
        (defun ,func-name (_buffer _max-point &optional _continue-condition 
_root)))))
diff --git a/phpinspect-pipeline.el b/phpinspect-pipeline.el
index 3c3069d1f0..3ae2a14a3c 100644
--- a/phpinspect-pipeline.el
+++ b/phpinspect-pipeline.el
@@ -1,6 +1,6 @@
 ;;; phpinspect-pipeline.el --- PHP parsing and completion package  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -276,8 +276,12 @@ directories."
                (when (eq :with-context key)
                  (setq value `(quote ,value)))
                (setq key (intern (string-replace ":with-" ":" (symbol-name 
key))))
+               ;; FIXME: There's an O(N²) complexity here :-(
                (setq construct-params (nconc construct-params (list key 
value)))))
-           (push (eval `(phpinspect--make-pipeline-step ,@construct-params 
:name (quote ,name)))
+           ;; FIXME: Instead of constructing an expression to pass to `eval',
+           ;; with all the quoting that implies, can't we create a list of
+           ;; values to pass to `apply', saving untold kittens along the way?
+           (push (eval `(phpinspect--make-pipeline-step ,@construct-params 
:name (quote ,name)) t)
                  steps)))
         (_ (error "unexpected key %s" key))))
 
@@ -320,7 +324,7 @@ directories."
             ,queue-sym (phpinspect-make-pipeline-end :thread (current-thread)))
 
            (while ,collecting-sym
-             (ignore-error 'phpinspect-pipeline-incoming
+             (ignore-error phpinspect-pipeline-incoming
                (progn
                  (phpinspect-pipeline--register-wakeup-function ,end-queue-sym)
                  (while (not (phpinspect-pipeline-end-p
diff --git a/phpinspect-project.el b/phpinspect-project.el
index 0df08d9821..8a04993fbf 100644
--- a/phpinspect-project.el
+++ b/phpinspect-project.el
@@ -1,6 +1,6 @@
 ;;; phpinspect-project.el --- PHP parsing and completion package  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -265,6 +265,13 @@ before the search is executed."
 (cl-defmethod phpinspect-project-add-file-index ((project phpinspect-project) 
(filename string))
   (phpinspect-project-add-index project (phpinspect-project-index-file project 
filename)))
 
+(defcustom phpinspect-projects nil
+  "PHPInspect Projects."
+  :type '(alist :key-type string
+                :value-type (alist :key-type symbol
+                                   :options ((include-dirs (repeat string)))))
+  :group 'phpinspect)
+
 (defun phpinspect-project-enqueue-include-dirs (project)
   (interactive (list (phpinspect--cache-get-project-create
                       (phpinspect--get-or-create-global-cache)
@@ -279,13 +286,6 @@ before the search is executed."
        (phpinspect-project-worker project)
        (phpinspect-make-index-dir-task :dir dir :project project)))))
 
-(defcustom phpinspect-projects nil
-  "PHPInspect Projects."
-  :type '(alist :key-type string
-                :value-type (alist :key-type symbol
-                                   :options ((include-dirs (repeat string)))))
-  :group 'phpinspect)
-
 (defun phpinspect-project-add-include-dir (dir)
   "Configure DIR as an include dir for the current project."
   (interactive (list (read-directory-name "Include Directory: ")))
diff --git a/phpinspect-resolve.el b/phpinspect-resolve.el
index 76e2159249..a2442e6b54 100644
--- a/phpinspect-resolve.el
+++ b/phpinspect-resolve.el
@@ -1,6 +1,6 @@
 ;;; phpinspect-resolve.el --- PHP parsing and completion package -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -26,6 +26,7 @@
 (require 'phpinspect-resolvecontext)
 (require 'phpinspect-type)
 (require 'phpinspect-parser)
+(require 'phpinspect-index) ;For 
`phpinspect-get-or-create-cached-project-class'.
 
 (cl-defstruct (phpinspect--assignment
                (:constructor phpinspect--make-assignment))
diff --git a/phpinspect-type.el b/phpinspect-type.el
index 8fc60064fa..d4b27b59e1 100644
--- a/phpinspect-type.el
+++ b/phpinspect-type.el
@@ -1,6 +1,6 @@
 ;;; phpinspect-type.el --- Data structures that represent phpinspect types  
-*- lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -24,6 +24,8 @@
 ;;; Code:
 
 (require 'phpinspect-util)
+(require 'phpinspect-parser)            ;For `phpinspect-const-p'.
+;; (require 'phpinspect-index) ;FIXME: Circular dependency :-(
 
 (cl-defstruct (phpinspect--type
                (:constructor phpinspect--make-type-generated)
@@ -230,7 +232,7 @@ return type of the function."))
 (cl-defmethod phpinspect--function-set-name ((func phpinspect--function) (name 
string))
   (setf (phpinspect--function-name-symbol func) (intern name 
phpinspect-name-obarray)))
 
-(cl-defgeneric phpinspect--function-name ((func phpinspect--function)))
+(cl-defgeneric phpinspect--function-name (func))
 
 (cl-defmethod phpinspect--function-name ((func phpinspect--function))
   (symbol-name (phpinspect--function-name-symbol func)))
diff --git a/phpinspect-util.el b/phpinspect-util.el
index 190bfec77f..fc723800bd 100644
--- a/phpinspect-util.el
+++ b/phpinspect-util.el
@@ -1,6 +1,6 @@
 ;;; phpinspect-util.el --- PHP parsing and completion package  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -31,6 +31,25 @@ PHP. Used to optimize string comparison.")
   '("composer.json" "composer.lock" ".git" ".svn" ".hg")
   "List of files that could indicate a project root directory.")
 
+(eval-and-compile (defvar phpinspect-log-groups nil))
+
+(defmacro phpinspect--log (&rest args)
+  (let ((log-group (alist-get (if (fboundp 'macroexp-file-name) ;Emacs≥28
+                                  (macroexp-file-name)
+                                (or load-file-name buffer-file-name))
+                              phpinspect-log-groups nil nil #'string=)))
+    `(when (and phpinspect--debug
+                (or (not phpinspect-enabled-log-groups)
+                    ,(when log-group
+                       `(member (quote ,log-group) 
phpinspect-enabled-log-groups))))
+       (with-current-buffer (get-buffer-create "**phpinspect-logs**")
+         (unless window-point-insertion-type
+           (set (make-local-variable 'window-point-insertion-type) t))
+         (goto-char (buffer-end 1))
+         (insert (concat "[" (format-time-string "%H:%M:%S") "]: "
+                         ,(if log-group (concat "(" (symbol-name log-group) ") 
") "")
+                         (format ,@args) "\n"))))))
+
 (defun phpinspect--find-project-root (&optional start-file)
   "(Attempt to) Find the root directory of the visited PHP project.
 If a found project root has a parent directory called \"vendor\",
@@ -65,7 +84,6 @@ level of START-FILE in stead of `default-directory`."
       (message "Enabled phpinspect logging.")
     (message "Disabled phpinspect logging.")))
 
-(defvar phpinspect-log-groups nil)
 (defvar phpinspect-enabled-log-groups nil)
 
 (defvar-local phpinspect--current-log-group nil)
@@ -85,20 +103,6 @@ level of START-FILE in stead of `default-directory`."
 
 (phpinspect--declare-log-group 'bam)
 
-(defmacro phpinspect--log (&rest args)
-  (let ((log-group (alist-get (or load-file-name buffer-file-name) 
phpinspect-log-groups nil nil #'string=)))
-    `(when (and phpinspect--debug
-                (or (not phpinspect-enabled-log-groups)
-                    ,(when log-group
-                       `(member (quote ,log-group) 
phpinspect-enabled-log-groups))))
-       (with-current-buffer (get-buffer-create "**phpinspect-logs**")
-         (unless window-point-insertion-type
-           (set (make-local-variable 'window-point-insertion-type) t))
-         (goto-char (buffer-end 1))
-         (insert (concat "[" (format-time-string "%H:%M:%S") "]: "
-                         ,(if log-group (concat "(" (symbol-name log-group) ") 
") "")
-                         (format ,@args) "\n"))))))
-
 (defun phpinspect-filter-logs (group-name)
   (interactive (list (completing-read "Log group: "
                                       (mapcar (lambda (g) (symbol-name (cdr 
g)))
diff --git a/phpinspect-worker.el b/phpinspect-worker.el
index 0d42dd73bf..bc9c5a2855 100644
--- a/phpinspect-worker.el
+++ b/phpinspect-worker.el
@@ -1,6 +1,6 @@
 ;;; phpinspect-worker.el --- PHP parsing and completion package  -*- 
lexical-binding: t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -134,7 +134,7 @@ already present in the queue."
       ;; This error is used to wake up the thread when new tasks are added to 
the
       ;; queue.
       (condition-case err
-          (ignore-error 'phpinspect-wakeup-thread
+          (ignore-error phpinspect-wakeup-thread
             (let* ((task (phpinspect-queue-dequeue (phpinspect-worker-queue 
worker)))
                    (mx (make-mutex))
                    (continue (make-condition-variable mx)))
@@ -238,8 +238,7 @@ already present in the queue."
         :documentation
         "The type whose file should be indexed."))
 
-(cl-defgeneric phpinspect-make-index-task ((project phpinspect-project)
-                                          (type phpinspect--type))
+(cl-defgeneric phpinspect-make-index-task (project type)
   (phpinspect-make-index-task-generated
    :project project
    :type type))
diff --git a/phpinspect.el b/phpinspect.el
index e42f92c3e4..3110bb48b6 100644
--- a/phpinspect.el
+++ b/phpinspect.el
@@ -1,6 +1,6 @@
 ;;; phpinspect.el --- PHP parsing and completion package  -*- lexical-binding: 
t; -*-
 
-;; Copyright (C) 2021  Free Software Foundation, Inc
+;; Copyright (C) 2021-2023  Free Software Foundation, Inc
 
 ;; Author: Hugo Thunnissen <devel@hugot.nl>
 ;; Keywords: php, languages, tools, convenience
@@ -179,14 +179,14 @@ at point (capf) functions:
 
 (defun my-php-personal-hook ()
   ;; Shortcut to add use statements for classes you use.
-  (define-key php-mode-map (kbd \"C-c u\") 'phpinspect-fix-imports)
+  (define-key php-mode-map (kbd \"C-c u\") #\\='phpinspect-fix-imports)
 
   ;; Shortcuts to quickly search/open files of PHP classes.
   ;; You can make these local to php-mode, but making them global
   ;; like this makes them work in other modes/filetypes as well, which
   ;; can be handy when jumping between templates, config files and PHP code.
-  (global-set-key (kbd \"C-c a\") 'phpinspect-find-class-file)
-  (global-set-key (kbd \"C-c c\") 'phpinspect-find-own-class-file)
+  (global-set-key (kbd \"C-c a\") #\\='phpinspect-find-class-file)
+  (global-set-key (kbd \"C-c c\") #\\='phpinspect-find-own-class-file)
 
   ;; Enable phpinspect-mode
   (phpinspect-mode))
@@ -316,7 +316,7 @@ currently opened projects."
 (defun phpinspect-get-all-fqns (&optional filter)
   "Return a list of all FQNS congruent with FILTER in the currently active 
project.
 
-FILTER must be nil or the symbol 'own' if FILTER is 'own', only
+FILTER must be nil or the symbol `own' if FILTER is `own', only
 fully qualified names from the project's source, and not its
 dependencies, are returned."
   (let* ((project (phpinspect--cache-get-project-create
Byte compiling packages/phpinspect/benchmarks/splay-tree.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In toplevel form:
packages/phpinspect/benchmarks/splay-tree.el:6:8: Warning: Unused lexical 
variable ‘here’
packages/phpinspect/benchmarks/splay-tree.el:34:9: Warning: value from call to 
‘gethash’ is unused
Byte compiling packages/phpinspect/phpinspect-bmap.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In end of data:
packages/phpinspect/phpinspect-bmap.el:254:6: Warning: the function 
‘phpinspect-meta-with-changeset’ is not known to be defined.
Byte compiling packages/phpinspect/benchmarks/parse-file.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect-autoload.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect-buffer.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect-changeset.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect-cache.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect-class.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In end of data:
packages/phpinspect/phpinspect-class.el:90:14: Warning: the function 
‘phpinspect-project-get-class-create’ is not known to be defined.
Byte compiling packages/phpinspect/phpinspect-edtrack.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In phpinspect-taint-end:
packages/phpinspect/phpinspect-edtrack.el:154:11: Warning: defsubst 
‘phpinspect-taint-end’ was used before it was defined

In phpinspect-taint-overlaps-region:
packages/phpinspect/phpinspect-edtrack.el:164:11: Warning: defsubst 
‘phpinspect-taint-overlaps-region’ was used before it was defined

In phpinspect-taint-overlaps-meta:
packages/phpinspect/phpinspect-edtrack.el:178:11: Warning: defsubst 
‘phpinspect-taint-overlaps-meta’ was used before it was defined

In phpinspect-edtrack-register-taint:
packages/phpinspect/phpinspect-edtrack.el:193:11: Warning: defsubst 
‘phpinspect-edtrack-register-taint’ was used before it was defined
Byte compiling packages/phpinspect/phpinspect-completion.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect-eldoc.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In phpinspect-mode:
packages/phpinspect/phpinspect.el:141:2: Warning: docstring has wrong usage of 
unescaped single quotes (use \=' or different quoting such as `...')
Byte compiling packages/phpinspect/phpinspect-fs.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect-imports.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect-index.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In end of data:
packages/phpinspect/phpinspect-index.el:515:22: Warning: the function 
‘phpinspect--get-or-create-global-cache’ is not known to be defined.
packages/phpinspect/phpinspect-index.el:514:21: Warning: the function 
‘phpinspect--cache-get-project-create’ is not known to be defined.
Byte compiling packages/phpinspect/phpinspect-meta.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In phpinspect-meta-width:
packages/phpinspect/phpinspect-meta.el:64:11: Warning: defsubst 
‘phpinspect-meta-width’ was used before it was defined
Byte compiling packages/phpinspect/phpinspect-parse-context.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In end of data:
packages/phpinspect/phpinspect-parse-context.el:129:6: Warning: the function 
‘phpinspect-changeset-revert’ is not known to be defined.
Byte compiling packages/phpinspect/phpinspect-pipeline.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In phpinspect-pipeline:
packages/phpinspect/phpinspect-pipeline.el:344:13: Warning: assignment to free 
variable ‘key’
packages/phpinspect/phpinspect-pipeline.el:345:13: Warning: assignment to free 
variable ‘value’
packages/phpinspect/phpinspect-pipeline.el:347:14: Warning: reference to free 
variable ‘key’
packages/phpinspect/phpinspect-pipeline.el:348:29: Warning: reference to free 
variable ‘value’
Byte compiling packages/phpinspect/phpinspect-parser.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In phpinspect--variable-handler:
packages/phpinspect/phpinspect-parser.el:709:2: Warning: defsubst 
‘phpinspect--variable-handler’ was used before it was defined

In phpinspect--list-handler:
packages/phpinspect/phpinspect-parser.el:912:2: Warning: defsubst 
‘phpinspect--list-handler’ was used before it was defined

In end of data:
packages/phpinspect/phpinspect-parser.el:1062:8: Warning: the function 
‘phpinspect--parse-root’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:1019:18: Warning: the function 
‘phpinspect--parse-array’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:1001:4: Warning: the function 
‘phpinspect--parse-static’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:989:45: Warning: the function 
‘phpinspect--parse-scope-protected’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:988:43: Warning: the function 
‘phpinspect--parse-scope-private’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:987:42: Warning: the function 
‘phpinspect--parse-scope-public’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:940:21: Warning: the function 
‘phpinspect--parse-declaration’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:918:21: Warning: the function 
‘phpinspect--parse-list’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:861:19: Warning: the function 
‘phpinspect--parse-block’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:842:19: Warning: the function 
‘phpinspect--parse-class-block’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:820:19: Warning: the function 
‘phpinspect--parse-block-without-scopes’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:796:22: Warning: the function 
‘phpinspect--parse-const’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:779:4: Warning: the function 
‘phpinspect--parse-namespace’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:749:4: Warning: the function 
‘phpinspect--parse-use’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:707:13: Warning: the function 
‘phpinspect--parse-comment’ is not known to be defined.
packages/phpinspect/phpinspect-parser.el:702:31: Warning: the function 
‘phpinspect--parse-doc-block’ is not known to be defined.
Byte compiling packages/phpinspect/phpinspect-project.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In end of data:
packages/phpinspect/phpinspect-project.el:287:9: Warning: the function 
‘phpinspect-make-index-dir-task’ is not known to be defined.
packages/phpinspect/phpinspect-project.el:277:24: Warning: the function 
‘phpinspect--get-or-create-global-cache’ is not known to be defined.
packages/phpinspect/phpinspect-project.el:276:23: Warning: the function 
‘phpinspect--cache-get-project-create’ is not known to be defined.
packages/phpinspect/phpinspect-project.el:251:52: Warning: the function 
‘phpinspect-index-current-buffer’ is not known to be defined.
packages/phpinspect/phpinspect-project.el:230:21: Warning: the function 
‘phpinspect-autoloader-resolve’ is not known to be defined.
packages/phpinspect/phpinspect-project.el:229:8: Warning: the function 
‘phpinspect-autoloader-refresh’ is not known to be defined.
packages/phpinspect/phpinspect-project.el:127:39: Warning: the function 
‘phpinspect-make-index-task’ is not known to be defined.
packages/phpinspect/phpinspect-project.el:126:12: Warning: the function 
‘phpinspect-worker-enqueue’ is not known to be defined.
packages/phpinspect/phpinspect-project.el: Warning: the function 
‘phpinspect-make-dynamic-worker’ is not known to be defined.
Byte compiling packages/phpinspect/phpinspect-queue.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect-serialize.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect-resolvecontext.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In end of data:
packages/phpinspect/phpinspect-resolvecontext.el:208:9: Warning: the function 
‘phpinspect--uses-to-types’ is not known to be defined.
packages/phpinspect/phpinspect-resolvecontext.el:205:32: Warning: the function 
‘phpinspect-namespace-body’ is not known to be defined.
packages/phpinspect/phpinspect-resolvecontext.el:164:5: Warning: the function 
‘phpinspect--get-or-create-global-cache’ is not known to be defined.
packages/phpinspect/phpinspect-resolvecontext.el:163:4: Warning: the function 
‘phpinspect--cache-get-project-create’ is not known to be defined.
packages/phpinspect/phpinspect-resolvecontext.el:80:20: Warning: the function 
‘phpinspect-statement-introduction-p’ is not known to be defined.
Byte compiling packages/phpinspect/phpinspect-resolve.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In end of data:
packages/phpinspect/phpinspect-resolve.el:135:45: Warning: the function 
‘phpinspect--get-or-create-global-cache’ is not known to be defined.
packages/phpinspect/phpinspect-resolve.el:135:7: Warning: the function 
‘phpinspect--cache-get-project-create’ is not known to be defined.
Byte compiling packages/phpinspect/phpinspect-splayt.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect-suggest.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/phpinspect-util.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In phpinspect--find-project-root:
packages/phpinspect/phpinspect-util.el:61:4: Warning: reference to free 
variable ‘phpinspect--debug’
packages/phpinspect/phpinspect-util.el:61:4: Warning: reference to free 
variable ‘phpinspect-enabled-log-groups’
Byte compiling packages/phpinspect/phpinspect-type.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In end of data:
packages/phpinspect/phpinspect-type.el:180:30: Warning: the function 
‘phpinspect--get-class-name-from-token’ is not known to be defined.
Byte compiling packages/phpinspect/phpinspect-worker.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/test/phpinspect-test.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/test/test-bmap.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In toplevel form:
packages/phpinspect/test/test-bmap.el:72:11: Warning: assignment to free 
variable ‘result’
packages/phpinspect/test/test-bmap.el:73:82: Warning: reference to free 
variable ‘result’
Byte compiling packages/phpinspect/test/test-autoload.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In toplevel form:
packages/phpinspect/test/test-autoload.el:33:11: Warning: Unused lexical 
variable ‘autoloader’
packages/phpinspect/test/test-autoload.el:50:21: Warning: ‘sort’ on constant 
list (arg 1)
Byte compiling packages/phpinspect/test/test-buffer.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In toplevel form:
packages/phpinspect/test/test-buffer.el:33:11: Warning: Unused lexical variable 
‘class’
packages/phpinspect/test/test-buffer.el:35:37: Warning: reference to free 
variable ‘phpinspect-test-php-file-directory’
packages/phpinspect/test/test-buffer.el:55:10: Warning: Unused lexical variable 
‘buffer’

In end of data:
packages/phpinspect/test/test-buffer.el:253:43: Warning: the function 
‘phpinspect-after-change-function’ is not known to be defined.
Byte compiling packages/phpinspect/test/test-class.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/test/test-edtrack.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/test/test-eldoc.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/test/test-fs.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/test/test-parse-context.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In end of data:
packages/phpinspect/test/test-parse-context.el:34:8: Warning: the function 
‘phpinspect-meta-with-changeset’ is not known to be defined.
Byte compiling packages/phpinspect/test/test-index.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In toplevel form:
packages/phpinspect/test/test-index.el:85:23: Warning: ‘sort’ on constant list 
(arg 1)
packages/phpinspect/test/test-index.el:166:37: Warning: reference to free 
variable ‘phpinspect-test-php-file-directory’

In end of data:
packages/phpinspect/test/test-index.el:154:12: Warning: the function 
‘phpinspect-test-read-fixture-serialization’ is not known to be defined.
packages/phpinspect/test/test-index.el:152:13: Warning: the function 
‘phpinspect-test-read-fixture-data’ is not known to be defined.
Byte compiling packages/phpinspect/test/test-parser.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In end of data:
packages/phpinspect/test/test-parser.el:153:17: Warning: the function 
‘phpinspect--index-tokens’ is not known to be defined.
packages/phpinspect/test/test-parser.el:93:12: Warning: the function 
‘phpinspect-test-parse-fixture-code’ is not known to be defined.
packages/phpinspect/test/test-parser.el:92:12: Warning: the function 
‘phpinspect-test-read-fixture-data’ is not known to be defined.
Byte compiling packages/phpinspect/test/test-pipeline.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In toplevel form:
packages/phpinspect/test/test-pipeline.el:29:22: Warning: Unused lexical 
variable ‘thread’

In end of data:
packages/phpinspect/test/test-pipeline.el:53:13: Warning: the function 
‘aah-it-broke’ is not known to be defined.
packages/phpinspect/test/test-pipeline.el:35:13: Warning: the function 
‘correct-the-record’ is not known to be defined.
Byte compiling packages/phpinspect/test/test-project.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In toplevel form:
packages/phpinspect/test/test-project.el:38:11: Warning: Unused lexical 
variable ‘worker’
packages/phpinspect/test/test-project.el:42:52: Warning: Unused lexical 
argument ‘ignored’

In end of data:
packages/phpinspect/test/test-project.el:38:19: Warning: the function 
‘phpinspect-make-worker’ is not known to be defined.
Byte compiling packages/phpinspect/test/test-resolvecontext.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In toplevel form:
packages/phpinspect/test/test-resolvecontext.el:32:35: Warning: reference to 
free variable ‘phpinspect-test-php-file-directory’

In end of data:
packages/phpinspect/test/test-resolvecontext.el:87:28: Warning: the function 
‘phpinspect-test-read-fixture-data’ is not known to be defined.
packages/phpinspect/test/test-resolvecontext.el:33:19: Warning: the function 
‘phpinspect-parse-string-to-bmap’ is not known to be defined.
Byte compiling packages/phpinspect/test/test-type.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In end of data:
packages/phpinspect/test/test-type.el:33:18: Warning: the function 
‘phpinspect--make-type’ is not known to be defined.
packages/phpinspect/test/test-type.el:32:17: Warning: the function 
‘phpinspect--resolve-late-static-binding’ is not known to be defined.
packages/phpinspect/test/test-type.el:31:16: Warning: the function 
‘phpinspect--type=’ is not known to be defined.
Byte compiling packages/phpinspect/test/test-util.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In toplevel form:
packages/phpinspect/test/test-util.el:28:58: Warning: reference to free 
variable ‘*’

In end of data:
packages/phpinspect/test/test-util.el:44:19: Warning: the function 
‘phpinspect--pattern-concat’ is not known to be defined.
packages/phpinspect/test/test-util.el:35:16: Warning: the function 
‘phpinspect--pattern-match’ is not known to be defined.
packages/phpinspect/test/test-util.el:31:45: Warning: the function 
‘phpinspect--pattern-code’ is not known to be defined.
packages/phpinspect/test/test-util.el:28:21: Warning: the function 
‘phpinspect--make-pattern’ is not known to be defined.
Byte compiling packages/phpinspect/test/test-worker.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/test/util/generate-test-data.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable
Byte compiling packages/phpinspect/test/test-splayt.el
Unable to activate package ‘zig-mode’.
Required package ‘reformatter-0.6’ is unavailable
Unable to activate package ‘evil-visualstar’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-numbers’.
Required package ‘evil-1.2.0’ is unavailable
Unable to activate package ‘evil-lisp-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-indent-plus’.
Required package ‘evil-0’ is unavailable
Unable to activate package ‘evil-iedit-state’.
Required package ‘evil-1.0.9’ is unavailable
Unable to activate package ‘evil-goggles’.
Required package ‘evil-1.0.0’ is unavailable
Unable to activate package ‘evil-exchange’.
Required package ‘evil-1.2.8’ is unavailable
Unable to activate package ‘evil-args’.
Required package ‘evil-1.0.8’ is unavailable
Unable to activate package ‘evil-anzu’.
Required package ‘evil-1.0.0’ is unavailable

In toplevel form:
packages/phpinspect/test/test-splayt.el:74:22: Warning: ‘sort’ on constant list 
(arg 1)
packages/phpinspect/test/test-splayt.el:94:22: Warning: ‘sort’ on constant list 
(arg 1)
packages/phpinspect/test/test-splayt.el:164:21: Warning: ‘sort’ on constant 
list (arg 1)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]