From b571394209624a296faaa3407d607b10f78bb7a5 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 21 Sep 2016 10:32:23 +0200 Subject: [PATCH] don't infer ->null contracts in scope of @MethodAreNonNullByDefault (addendum to IDEA-160991) --- .../codeInspection/dataFlow/ContractInference.java | 2 +- .../dataFlow/fixture/CustomTypeQualifierDefault.java | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) 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;