[java-dfa] Fix NPE reporting on array dimension, test (IJ-CR-4131)

GitOrigin-RevId: 5d756d23f3c3c2bebd4f9e057093f41ccf38a362
This commit is contained in:
Tagir Valeev
2020-12-14 05:29:07 +00:00
committed by intellij-monorepo-bot
parent e15a2c8c71
commit e48d09ba4a
2 changed files with 9 additions and 2 deletions
@@ -230,8 +230,10 @@ public final class NullabilityProblemKind<T extends PsiElement> {
parent instanceof PsiSynchronizedStatement) {
return fieldAccessNPE.problem(context, expression);
}
if (parent instanceof PsiNewExpression && ((PsiNewExpression)parent).getQualifier() == context) {
return innerClassNPE.problem((PsiNewExpression)parent, expression);
if (parent instanceof PsiNewExpression) {
return ((PsiNewExpression)parent).getQualifier() == context ?
innerClassNPE.problem((PsiNewExpression)parent, expression) :
createUnboxingProblem(context, expression); // Array dimension
}
if (parent instanceof PsiPolyadicExpression) {
PsiPolyadicExpression polyadic = (PsiPolyadicExpression)parent;
@@ -8,4 +8,9 @@ class InnerClassTest {
System.out.println(test.new <warning descr="Inner class construction may produce 'NullPointerException'">Inner</warning>());
}
void dimensionNotInnerClass() {
Integer x = null;
int[] data = new int[<warning descr="Unboxing of 'x' may produce 'NullPointerException'">x</warning>];
}
}