SmallSense__CodeNavigationService.st
changeset 938 8a0784dadc56
parent 374 e65bd2bf892a
child 1072 a44c741ee5ef
--- a/SmallSense__CodeNavigationService.st	Fri Apr 08 10:32:21 2016 +0100
+++ b/SmallSense__CodeNavigationService.st	Tue Apr 12 18:50:19 2016 +0100
@@ -235,7 +235,24 @@
     binding := node binding .
     binding isNil ifTrue:[ ^ nil ].
     className := binding declaringClass compoundName asStringWith: $/.
-    selector := binding selector , binding signature.
+    binding problemId == 0"NoError" ifTrue:[ 
+        selector := binding selector , binding signature.
+    ] ifFalse:[
+        "/ When a method is a problematic, the signature cannot be
+        "/ trusted as eother parameter type or arguments could not
+        "/ be resolved. In that case, try to search for the method
+        "/ by its name - thiw won't work well with overloaded 
+        "/ methods
+        | name class method |
+
+        name := binding selector.
+        class := self environment allClasses detect:[:c | c isJavaClass and:[c binaryName = className ] ] ifNone: [  nil ].
+        class isNil ifTrue:[ ^ nil ].
+        method := class methodDictionary detect:[:m | m name = name ] ifNone:[ nil ].
+        method isNil ifTrue:[ ^ nil ].
+        selector := method selector.
+    ].
+
 
     toolbox := JavaToolbox new
                 browser: self browser;
@@ -251,7 +268,7 @@
     ].
 
     "Created: / 24-09-2013 / 23:10:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 25-09-2013 / 10:01:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 12-04-2016 / 17:37:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 navigateToTypeReference: node