diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLambdaExpressionImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLambdaExpressionImpl.java index ffb9de9ebcfa..74092851e579 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLambdaExpressionImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/java/PsiLambdaExpressionImpl.java @@ -110,7 +110,7 @@ public class PsiLambdaExpressionImpl extends ExpressionPsiElement implements Psi final PsiElement body = getBody(); if (body instanceof PsiCodeBlock) { try { - ControlFlow controlFlow = ControlFlowFactory.getInstance(getProject()).getControlFlow(body, ourPolicy); + ControlFlow controlFlow = ControlFlowFactory.getInstance(getProject()).getControlFlow(body, ourPolicy, false, false); int startOffset = controlFlow.getStartOffset(body); int endOffset = controlFlow.getEndOffset(body); if (startOffset != -1 && endOffset != -1 && ControlFlowUtil.canCompleteNormally(controlFlow, startOffset, endOffset)) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/DoNotCheckConstantIfsDuringValueCompatibleChecks.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/DoNotCheckConstantIfsDuringValueCompatibleChecks.java new file mode 100644 index 000000000000..9f98b09607dc --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/DoNotCheckConstantIfsDuringValueCompatibleChecks.java @@ -0,0 +1,29 @@ +class Test { + class Message { + public T data; + } + + class Result<T> { + public boolean isSuccessful() { + return false; + } + } + + interface handlerReturn { + R process(T m); + } + private void process(handlerReturn h) {} + + interface handler { + void process(T m); + } + private void process(handler h) {} + + + public static void main(String[] args) { + Test t = new Test(); + t.>>process(m -> { + if (m.data.isSuccessful()); + }); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/OverloadResolutionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/OverloadResolutionTest.java index bc3e9ec00ea7..32e4452c9db6 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/OverloadResolutionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/OverloadResolutionTest.java @@ -126,6 +126,10 @@ public class OverloadResolutionTest extends LightDaemonAnalyzerTestCase { doTest(); } + public void testDoNotCheckConstantIfsDuringValueCompatibleChecks() throws Exception { + doTest(); + } + private void doTest() { doTest(true); }