From fbdbf80da340430dfbe3d6f9a0b59d6f831d935f Mon Sep 17 00:00:00 2001 From: Tagir Valeev Date: Wed, 10 Oct 2018 13:07:13 +0700 Subject: [PATCH] Fixed reporting of unboxing on cast --- .../codeInspection/dataFlow/DataFlowInspectionBase.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DataFlowInspectionBase.java b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DataFlowInspectionBase.java index 388f0df91219..11cc54487377 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DataFlowInspectionBase.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/DataFlowInspectionBase.java @@ -460,7 +460,12 @@ public class DataFlowInspectionBase extends AbstractBaseJavaLocalInspectionTool LocalQuickFix[] fix = createNPEFixes(element, fieldAccess, holder.isOnTheFly()).toArray(LocalQuickFix.EMPTY_ARRAY); holder.registerProblem(element, problem.getMessage(expressions), fix); }); - NullabilityProblemKind.unboxingNullable.ifMyProblem(problem, element -> holder.registerProblem(element, problem.getMessage(expressions))); + NullabilityProblemKind.unboxingNullable.ifMyProblem(problem, element -> { + if (element instanceof PsiTypeCastExpression && ((PsiTypeCastExpression)element).getType() instanceof PsiPrimitiveType) { + element = Objects.requireNonNull(((PsiTypeCastExpression)element).getOperand()); + } + holder.registerProblem(element, problem.getMessage(expressions)); + }); NullabilityProblemKind.nullableFunctionReturn.ifMyProblem(problem, expr -> holder.registerProblem(expr, problem.getMessage(expressions))); NullabilityProblemKind.assigningToNotNull.ifMyProblem(problem, expr -> reportNullabilityProblem(holder, problem, expr, expressions)); NullabilityProblemKind.storingToNotNullArray.ifMyProblem(problem, expr -> reportNullabilityProblem(holder, problem, expr, expressions));