Skip to content

Commit b0cd819

Browse files
committed
Verify method parameter types to return accuracy
1 parent 82d0277 commit b0cd819

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
@@ -669,6 +669,16 @@ protected int resolveLevelForNodeWithMethodBinding(ASTNode messageSend,
669669
invocationOrDeclarationBinding = declarationBinding;
670670
}
671671

672+
if (invocationBinding.getParameterTypes().length == messageSend.arguments().size()) {
673+
for (int i = 0; i < invocationBinding.getParameterTypes().length; i++) {
674+
var source = ((Expression)messageSend.arguments().get(i)).resolveTypeBinding();
675+
var resolved = invocationBinding.getParameterTypes()[i];
676+
if (source != null && !source.isAssignmentCompatible(resolved)) {
677+
return INACCURATE_MATCH;
678+
}
679+
}
680+
}
681+
672682
int invocOrDeclLevel = invocationLevel == IMPOSSIBLE_MATCH ? declarationLevel : invocationLevel;
673683
// receiver type
674684
if (this.pattern.declaringSimpleName == null && this.pattern.declaringQualification == null) {

0 commit comments

Comments
 (0)