method return type in not used: fix for literal expressions(IDEA-184798)

This commit is contained in:
Anna.Kozlova
2018-01-11 13:10:10 +01:00
parent d2f7a6b367
commit 5f3f0f81a5
4 changed files with 28 additions and 2 deletions

View File

@@ -56,8 +56,11 @@ public class RefJavaUtilImpl extends RefJavaUtil{
for (PsiReference reference : expression.getReferences()) {
PsiElement resolve = reference.resolve();
if (resolve instanceof PsiMember) {
final RefElement refClass = refFrom.getRefManager().getReference(resolve);
refFrom.addReference(refClass, resolve, psiFrom, false, true, null);
final RefElement refResolved = refFrom.getRefManager().getReference(resolve);
refFrom.addReference(refResolved, resolve, psiFrom, false, true, null);
if (refResolved instanceof RefMethod) {
updateRefMethod(resolve, refResolved, expression, psiFrom, refFrom);
}
}
}
}
@@ -239,6 +242,14 @@ public class RefJavaUtilImpl extends RefJavaUtil{
}
return;
}
if (refExpression instanceof PsiLiteralExpression){ //references in literal expressions
PsiType returnType = psiMethod.getReturnType();
if (!psiMethod.isConstructor() && !PsiType.VOID.equals(returnType)) {
refMethod.setReturnValueUsed(true);
addTypeReference(psiFrom, returnType, refFrom.getRefManager());
}
return;
}
PsiMethodCallExpression call = PsiTreeUtil.getParentOfType(
refExpression,
PsiMethodCallExpression.class