constructor reference: don't ignore constructor parameters during method reference inference (IDEA-185578)

GitOrigin-RevId: e836468e05db28157713e9edd3c70382f8ecdebc
This commit is contained in:
Anna Kozlova
2019-06-12 12:40:39 +02:00
committed by intellij-monorepo-bot
parent 89bb3c6fda
commit 91f7445298
12737 changed files with 488037 additions and 160329 deletions

View File

@@ -156,9 +156,21 @@ public class RefJavaUtilImpl extends RefJavaUtil {
public boolean visitCallableReferenceExpression(@NotNull UCallableReferenceExpression node) {
visitReferenceExpression(node);
processFunctionalExpression(node, getFunctionalInterfaceType(node));
markParametersReferenced(node);
return false;
}
private void markParametersReferenced(@NotNull UCallableReferenceExpression node) {
PsiElement resolved = node.resolve();
if (resolved == null) return;
RefElement refElement = refFrom.getRefManager().getReference(resolved);
if (refElement instanceof RefMethod) {
for (RefParameter parameter : ((RefMethod)refElement).getParameters()) {
refFrom.addReference(parameter, parameter.getPsiElement(), decl, false, true, node);
}
}
}
@Override
public boolean visitObjectLiteralExpression(@NotNull UObjectLiteralExpression node) {
visitReferenceExpression(node);