unused symbol inspection: mark method parameter used if method is used as method reference IDEA-210306

GitOrigin-RevId: 086a276669ee3dba969f8ea2334af157890594dc
This commit is contained in:
Dmitry Batkovich
2019-05-08 13:45:33 +02:00
committed by intellij-monorepo-bot
parent 6cc0a96a98
commit db60b80cc4
11 changed files with 45 additions and 7 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);