From 4232f8dd411b7214da4cdabf96dd87d2c3096771 Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Mon, 14 Aug 2017 10:27:10 +0700 Subject: [PATCH] IDEA-177499 ClassCastException in data flow inspection --- .../dataFlow/value/DfaExpressionFactory.java | 2 +- .../fixture/IgnoreNullabilityOnPrimitiveCast.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaExpressionFactory.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaExpressionFactory.java index 1d31756d3656..bc357b44028c 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaExpressionFactory.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/value/DfaExpressionFactory.java @@ -136,7 +136,7 @@ public class DfaExpressionFactory { } if (DfaValueFactory.isEffectivelyUnqualified(refExpr) || isStaticFinalConstantWithoutInitializationHacks(var)) { - if (isFieldDereferenceBeforeInitialization(refExpr)) { + if (isFieldDereferenceBeforeInitialization(refExpr) && !(refExpr.getType() instanceof PsiPrimitiveType)) { return myFactory.getConstFactory().getNull(); } diff --git a/java/java-tests/testData/inspection/dataFlow/fixture/IgnoreNullabilityOnPrimitiveCast.java b/java/java-tests/testData/inspection/dataFlow/fixture/IgnoreNullabilityOnPrimitiveCast.java index 0fa48439939c..dabcee68bd22 100644 --- a/java/java-tests/testData/inspection/dataFlow/fixture/IgnoreNullabilityOnPrimitiveCast.java +++ b/java/java-tests/testData/inspection/dataFlow/fixture/IgnoreNullabilityOnPrimitiveCast.java @@ -4,4 +4,13 @@ class IgnoreNullabilityOnPrimitiveCast { private static int map(@Nullable int[] mapping, int idx) { return mapping[idx]; } + + static final int TEST; + + static { + TEST = 4; + } + + final int[] arr = {TEST}; + final int val = TEST; } \ No newline at end of file