-
Notifications
You must be signed in to change notification settings - Fork 193
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Default parameters: wrong Call Hiearchy results found for method call #773
Comments
GroovyCompUnitDecl maps MethodNode -> AbstractMethodDeclaration MethodScope.createMethod maps AbstractMethodDeclaration -> MethodBinding JDTClassNode.methodBindingToMethodNode maps MethodBinding -> MethodNode
This is implemented in If this is switched to exact matching, there will still need to be something that accounts for inexact matches. Like if you have "doIt()" and "doIt(int)" and the call expr is "doIt(1, 2, 3)". |
I am testing a possible solution now. And I need to work out a conflict with #373, since it was fixed in the call argument matching branch and it now goes down the parameter matching branch. Some known limitations: The searching for multiple method signatures happens only for the Groovy-specific path. So if your Test43 was a Java class, only one reference would be found when searching any of the 3 method calls. Also, if GBean were a binary reference, there would be no link between |
Ready to test |
This case works fine in 3.3.0.xx-201901152207-e49 and I also verified that there's no regression for #373. I will open another ticket to investigate solutions for the case in which Test43 is Java code. |
Consider this:
And this:
Put the cursor over
test42.GBean.doSomething()
and hit Ctrl+Alt+H: it finds bothb2.doSomething()
andb2.doSomething('foo')
, while it should find only the former.Please note that
b2.doSomething('foo')
is (correctly) found also when requesting Call Hiearchy fortest42.GBean.doSomething(String, String)
.The text was updated successfully, but these errors were encountered: