when a nullable variable is assigned with an unknown value, don't consider it nullable (IDEA-42890)

This commit is contained in:
peter
2012-10-29 12:57:21 +01:00
parent 028bd8c6d5
commit 61d7ab558d
3 changed files with 19 additions and 1 deletions
@@ -267,7 +267,10 @@ public class DfaMemoryStateImpl implements DfaMemoryState {
if (var == value) return;
flushVariable(var);
if (value instanceof DfaUnknownValue) return;
if (value instanceof DfaUnknownValue) {
getVariableState(var).setNullable(false);
return;
}
getVariableState(var).setValue(value);
if (value instanceof DfaNotNullValue) {
@@ -0,0 +1,14 @@
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class BrokenAlignment {
public void main(String... args) {
@Nullable Class object = Object.class;
output2(object);
}
public static void output2(@NotNull Object value) {
System.out.println(value);
}
}
@@ -84,6 +84,7 @@ public class DataFlowInspectionFixtureTest extends JavaCodeInsightFixtureTestCas
public void testChainedFinalFieldAccessorsDfa() throws Throwable { doTest(); }
public void testAssigningUnknownToNullable() throws Throwable { doTest(); }
public void testAssigningClassLiteralToNullable() throws Throwable { doTest(); }
public void testSynchronizingOnNullable() throws Throwable { doTest(); }
public void testReturningNullFromVoidMethod() throws Throwable { doTest(); }