"Can be null" doesn't imply "is null"

This commit is contained in:
Maxim Shafirov
2012-03-15 17:00:26 +04:00
parent 95825980c7
commit c0dcdcd22c
@@ -123,7 +123,11 @@ public class StandardInstructionVisitor extends InstructionVisitor {
final DfaValue qualifier = memState.pop();
if (instruction.getExpression().isPhysical() && !memState.applyNotNull(qualifier)) {
onInstructionProducesNPE(instruction, runner);
return DfaInstructionState.EMPTY_ARRAY;
if (qualifier instanceof DfaVariableValue) {
final DfaNotNullValue.Factory factory = runner.getFactory().getNotNullFactory();
memState.setVarValue((DfaVariableValue)qualifier, factory.create(((DfaVariableValue)qualifier).getPsiVariable().getType()));
}
}
return nextInstruction(instruction, runner, memState);