Skip to content

Commit 22c76b5

Browse files
committed
Verify method parameter types to return accuracy
1 parent 6280eda commit 22c76b5

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

org.eclipse.jdt.core.javac/src/org/eclipse/jdt/internal/core/search/matching/DOMMethodLocator.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,16 @@ protected int resolveLevel(MethodInvocation messageSend) {
703703
invocationOrDeclarationBinding = declarationBinding;
704704
}
705705

706+
if (invocationBinding.getParameterTypes().length == messageSend.arguments().size()) {
707+
for (int i = 0; i < invocationBinding.getParameterTypes().length; i++) {
708+
var source = ((Expression)messageSend.arguments().get(i)).resolveTypeBinding();
709+
var resolved = invocationBinding.getParameterTypes()[i];
710+
if (!source.isAssignmentCompatible(resolved)) {
711+
return INACCURATE_MATCH;
712+
}
713+
}
714+
}
715+
706716
int invocOrDeclLevel = invocationLevel == IMPOSSIBLE_MATCH ? declarationLevel : invocationLevel;
707717
// receiver type
708718
if (this.pattern.declaringSimpleName == null && this.pattern.declaringQualification == null) {

0 commit comments

Comments
 (0)