diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ContractInference.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ContractInference.java index f676d47a9028..082949c98b4c 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ContractInference.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ContractInference.java @@ -76,7 +76,7 @@ class ContractInferenceInterpreter { contracts = boxReturnValues(contracts); } List compatible = ContainerUtil.filter(contracts, contract -> { - if (contract.returnValue == NOT_NULL_VALUE && + if ((contract.returnValue == NOT_NULL_VALUE || contract.returnValue == NULL_VALUE) && NullableNotNullManager.getInstance(myMethod.getProject()).isNotNull(myMethod, false)) { return false; } diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/CustomTypeQualifierDefault.java b/java/java-tests/testData/inspection/dataFlow/fixture/CustomTypeQualifierDefault.java index 18f9be2c43d6..60fb3486010f 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/CustomTypeQualifierDefault.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/CustomTypeQualifierDefault.java @@ -24,10 +24,15 @@ class NotNullClass { return null; } - private Object privateFoo() { + private String privateFoo() { return null; } + { + String s2 = privateFoo(); + int i2 = s2.length(); + } + @Nullable public Object foo2() { return null;