branch: externals/phpinspect commit 2b9e26f188522182fd3fda4b1ea3a1ea7baea3f2 Author: Hugo Thunnissen <de...@hugot.nl> Commit: Hugo Thunnissen <de...@hugot.nl>
Add test for static method suggestion + fix discovered type resolving bug --- phpinspect-resolve.el | 4 ++-- test/test-suggest.el | 25 ++++++++++++++++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/phpinspect-resolve.el b/phpinspect-resolve.el index 8d7b2bb05c..a439b65824 100644 --- a/phpinspect-resolve.el +++ b/phpinspect-resolve.el @@ -578,8 +578,8 @@ type. (`phpinspect--type-p')" (let ((subject (phpinspect--resolvecontext-subject resolvecontext))) (setq type (cond ((and assume-derived - (phpinspect--match-sequence subject :f #'phpinspect-word-p)) - (funcall type-resolver (phpinspect--make-type :name (cadar subject)))) + (phpinspect--match-sequence (last subject) :f #'phpinspect-word-p)) + (funcall type-resolver (phpinspect--make-type :name (cadar (last subject))))) ((phpinspect-namespace-p enclosing-token) (phpinspect-interpret-expression-type-in-context diff --git a/test/test-suggest.el b/test/test-suggest.el index 1259ce0f49..4a79377453 100644 --- a/test/test-suggest.el +++ b/test/test-suggest.el @@ -139,4 +139,27 @@ public ") words (seq-filter #'phpinspect-suggest-keyword-p results)) (should (length= results (+ (length types) (length words)))) (should (equal (list "function" "static") - (sort (mapcar #'phpinspect-suggest-keyword-word words) #'string<)))))) + (sort (mapcar #'phpinspect-suggest-keyword-word words) #'string<)))))) + +(ert-deftest phpinspect-suggest-static-method-at-point () + (dolist (prefix (list "Foo::" "$bar = Foo::")) + + (with-temp-buffer + (insert "<?php + +namespace App; + + ") + (insert prefix) + + (let* ((buffer (phpinspect-claim-buffer + (current-buffer) + (phpinspect--make-dummy-composer-project-with-code))) + (rctx (phpinspect-buffer-get-resolvecontext buffer (point))) + (results (phpinspect-suggest-attributes-at-point rctx t)) + (types (seq-filter #'phpinspect--type-p results)) + (words (seq-filter #'phpinspect-suggest-keyword-p results))) + + (should (length= results 1)) + (should (equal (list "dont") + (mapcar #'phpi-fn-name results)))))))