[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/phpinspect ae681a0663 2/3: Fix bug that broke stub cach
From: |
ELPA Syncer |
Subject: |
[elpa] externals/phpinspect ae681a0663 2/3: Fix bug that broke stub cache |
Date: |
Fri, 16 Aug 2024 09:58:43 -0400 (EDT) |
branch: externals/phpinspect
commit ae681a06636d546b957e67f9b68a9ffc899e794c
Author: Hugo Thunnissen <devel@hugot.nl>
Commit: Hugo Thunnissen <devel@hugot.nl>
Fix bug that broke stub cache
Empty, non-indexed classes were created by
`phpinspect-project-enqueue-if-not-present', which caused them to override
any
fully indexed stub classes that might be available.
---
phpinspect-cache.el | 23 ++++++++++++++++-------
phpinspect-project.el | 2 --
2 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/phpinspect-cache.el b/phpinspect-cache.el
index eda831bff8..25dec47917 100644
--- a/phpinspect-cache.el
+++ b/phpinspect-cache.el
@@ -98,29 +98,29 @@ about.")
as keys and project caches as values."))
(defun phpinspect--get-stub-class (fqn)
- (when phpinspect-stub-cache
- (phpinspect--log "Getting stub class")
+ (when-let ((stub-cache (phpinspect-get-or-load-stub-cache)))
+ (phpinspect--log "Getting stub class for %s" fqn)
(catch 'return
(maphash (lambda (_name project)
(when-let ((class (phpinspect-project-get-class project fqn)))
(throw 'return class)))
- (phpinspect--cache-projects phpinspect-stub-cache)))))
+ (phpinspect--cache-projects stub-cache)))))
(defun phpinspect--get-stub-function (name)
- (when phpinspect-stub-cache
+ (when-let ((stub-cache (phpinspect-get-or-load-stub-cache)))
(if name
(catch 'return
(phpinspect--log "Getting stub function by name %s" name)
(maphash (lambda (_name project)
(when-let ((class (phpinspect-project-get-function
project name)))
(throw 'return class)))
- (phpinspect--cache-projects phpinspect-stub-cache)))
+ (phpinspect--cache-projects stub-cache)))
(let* ((funcs (cons nil nil))
(funcs-rear funcs))
(phpinspect--log "Retrieving all stub functions for nil name")
(maphash (lambda (_name project)
(setq funcs-rear (last (nconc funcs-rear
(phpinspect-project-get-functions project)))))
- (phpinspect--cache-projects phpinspect-stub-cache))
+ (phpinspect--cache-projects stub-cache))
(cdr funcs)))))
(defun phpinspect--get-or-create-global-cache ()
@@ -284,7 +284,16 @@ then returned."
(setq phpinspect-stub-cache (phpinspect--make-cache))
(phpinspect-project-add-index project (alist-get 'index data))
(puthash "builtins" project (phpinspect--cache-projects
phpinspect-stub-cache))
- (setf (phpinspect--cache-read-only-p phpinspect-stub-cache) t)))
+ (setf (phpinspect--cache-read-only-p phpinspect-stub-cache) t))
+ phpinspect-stub-cache)
+
+(defun phpinspect-get-or-load-stub-cache (&optional ignore-setting)
+ "Get stub cache if available,otherwise load stubs if setting is enabled.
+
+if IGNORE-SETTING is non-nil, stubs are always loaded when not available."
+ (or phpinspect-stub-cache
+ (and (or phpinspect-load-stubs ignore-setting)
+ (phpinspect-load-stub-index))))
;;; phpinspect.el ends here
(provide 'phpinspect-cache)
diff --git a/phpinspect-project.el b/phpinspect-project.el
index d30b078a15..abffa9e9d2 100644
--- a/phpinspect-project.el
+++ b/phpinspect-project.el
@@ -93,8 +93,6 @@ serious performance hits. Enable at your own risk (:")
(let ((class (phpinspect-project-get-class project type)))
(when (or (not class)
(not (or (phpinspect--class-initial-index class))))
- (when (not class)
- (setq class (phpinspect-project-create-class project type)))
(unless (or (phpinspect--type= phpinspect--null-type type)
(phpinspect--type-is-native type))
(phpinspect--log "Adding unpresent class %s to index queue" type)