From ec558192851886930483f7edca6636f63c19bdf8 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Fri, 11 Nov 2016 17:18:08 +0700 Subject: [PATCH] PsiTypesUtil: reverted erroneous changes in getExpectedTypeByParent (IDEA-CR-15590) --- .../src/com/intellij/psi/util/PsiTypesUtil.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/java/java-psi-api/src/com/intellij/psi/util/PsiTypesUtil.java b/java/java-psi-api/src/com/intellij/psi/util/PsiTypesUtil.java index bec5aaf8d116..0abcca03ea5d 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/PsiTypesUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/PsiTypesUtil.java @@ -211,7 +211,13 @@ public class PsiTypesUtil { } } else if (parent instanceof PsiReturnStatement) { - return getMethodReturnType(parent); + final PsiElement psiElement = PsiTreeUtil.getParentOfType(parent, PsiLambdaExpression.class, PsiMethod.class); + if (psiElement instanceof PsiLambdaExpression) { + return null; + } + else if (psiElement instanceof PsiMethod){ + return ((PsiMethod)psiElement).getReturnType(); + } } else if (PsiUtil.isCondition(element, parent)) { return PsiType.BOOLEAN.getBoxedType(parent); @@ -231,7 +237,7 @@ public class PsiTypesUtil { } } else if (gParent instanceof PsiArrayInitializerExpression) { - final PsiType expectedTypeByParent = getExpectedTypeByParent((PsiExpression)parent); + final PsiType expectedTypeByParent = getExpectedTypeByParent(parent); return expectedTypeByParent != null && expectedTypeByParent instanceof PsiArrayType ? ((PsiArrayType)expectedTypeByParent).getComponentType() : null; }