diff --git a/java/java-psi-api/src/com/intellij/psi/util/RedundantCastUtil.java b/java/java-psi-api/src/com/intellij/psi/util/RedundantCastUtil.java index d11b4a9cf984..2c438205c692 100644 --- a/java/java-psi-api/src/com/intellij/psi/util/RedundantCastUtil.java +++ b/java/java-psi-api/src/com/intellij/psi/util/RedundantCastUtil.java @@ -159,7 +159,7 @@ public class RedundantCastUtil { } @Override public void visitReturnStatement(PsiReturnStatement statement) { - final PsiMethod method = PsiTreeUtil.getParentOfType(statement, PsiMethod.class); + final PsiMethod method = PsiTreeUtil.getParentOfType(statement, PsiMethod.class, true, PsiLambdaExpression.class); if (method != null) { final PsiType returnType = method.getReturnType(); final PsiExpression returnValue = statement.getReturnValue(); diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/redundantCast/LambdaReturnExpressions1.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/redundantCast/LambdaReturnExpressions1.java new file mode 100644 index 000000000000..412998e6316f --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/redundantCast/LambdaReturnExpressions1.java @@ -0,0 +1,19 @@ +import java.util.Optional; + +class CommandTest { + public Object getObject() { + Optional o = Optional.of("x"); + return o.map(bx -> { + return (Object)""; + }) + .orElse(new Integer(1)); + } + + public Object getObject1() { + Optional o = Optional.of("x"); + return o.map(bx -> { + return (Object)new Object(); + }) + .orElse(new Integer(1)); + } +} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/LambdaRedundantCastTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/LambdaRedundantCastTest.java index f66b9b95ad3b..78287076576e 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/LambdaRedundantCastTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/LambdaRedundantCastTest.java @@ -37,6 +37,7 @@ public class LambdaRedundantCastTest extends LightDaemonAnalyzerTestCase { public void testIntersection() { doTest(); } public void testSer() { doTest(); } public void testLambdaReturnExpressions() { doTest(); } + public void testLambdaReturnExpressions1() { doTest(); } private void doTest() { doTest(BASE_PATH + "/" + getTestName(false) + ".java", true, false); }