diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DataFlowInspectionBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DataFlowInspectionBase.java index 6b5a148c377d..c55b7bbf9ffb 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DataFlowInspectionBase.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DataFlowInspectionBase.java @@ -637,7 +637,7 @@ public class DataFlowInspectionBase extends BaseJavaBatchLocalInspectionTool { if (method == null || NullableStuffInspectionBase.isNullableNotInferred(method, true)) return; PsiAnnotation notNullAnno = NullableNotNullManager.getInstance(method.getProject()).getNotNullAnnotation(method, true); - if (notNullAnno == null && !SUGGEST_NULLABLE_ANNOTATIONS) return; + if (notNullAnno == null && (!SUGGEST_NULLABLE_ANNOTATIONS || block.getParent() instanceof PsiLambdaExpression)) return; PsiType returnType = method.getReturnType(); // no warnings in void lambdas, where the expression is not returned anyway diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/DontSuggestToMakeLambdaNullable.java b/java/java-tests/testData/inspection/dataFlow/fixture/DontSuggestToMakeLambdaNullable.java new file mode 100644 index 000000000000..75eb265f8379 --- /dev/null +++ b/java/java-tests/testData/inspection/dataFlow/fixture/DontSuggestToMakeLambdaNullable.java @@ -0,0 +1,16 @@ +import java.util.Random; +import java.util.List; + +class TestCompilerWarnings { + long foo(List l) { + return l.stream().map(s -> { + if (new Random().nextInt() > 2) { + return null; + } + else { + return s; + } + }).count(); + } + +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspection8Test.java b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspection8Test.java index 1554016ddf7b..3e74e64e0b02 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspection8Test.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/DataFlowInspection8Test.java @@ -71,6 +71,13 @@ public class DataFlowInspection8Test extends DataFlowInspectionTestCase { myFixture.testHighlighting(true, false, true, getTestName(false) + ".java"); } + public void testDontSuggestToMakeLambdaNullable() { + DataFlowInspection inspection = new DataFlowInspection(); + inspection.SUGGEST_NULLABLE_ANNOTATIONS = true; + myFixture.enableInspections(inspection); + myFixture.testHighlighting(true, false, true, getTestName(false) + ".java"); + } + public void testLambdaParametersWithDefaultNullability() { DataFlowInspectionTest.addJavaxNullabilityAnnotations(myFixture); DataFlowInspectionTest.addJavaxDefaultNullabilityAnnotations(myFixture);