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)))))))

Reply via email to