From abfd61d8101daf80b2b709d6eec7c9103e46e97f Mon Sep 17 00:00:00 2001 From: UNV Date: Fri, 19 Dec 2025 13:57:13 +0300 Subject: [PATCH] Fixing exception due to null fix from DataFlowInspectionBase.createRemoveAssignmentFix(). --- .../dataFlow/DataFlowInspectionBase.java | 28 +++++++++---------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInspection/dataFlow/DataFlowInspectionBase.java b/java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInspection/dataFlow/DataFlowInspectionBase.java index 2d3b35281..e675fccd5 100644 --- a/java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInspection/dataFlow/DataFlowInspectionBase.java +++ b/java-analysis-impl/src/main/java/com/intellij/java/analysis/impl/codeInspection/dataFlow/DataFlowInspectionBase.java @@ -40,7 +40,6 @@ import consulo.project.Project; import consulo.util.collection.ArrayUtil; import consulo.util.collection.ContainerUtil; -import consulo.util.collection.SmartList; import consulo.util.lang.StringUtil; import consulo.util.lang.ThreeState; import jakarta.annotation.Nonnull; @@ -151,7 +150,7 @@ public void visitMethodReferenceExpression(@Nonnull PsiMethodReferenceExpression PsiType returnType = LambdaUtil.getFunctionalInterfaceReturnType(expression); if (TypeConversionUtil.isPrimitiveAndNotNull(returnType)) { holder.newProblem(JavaAnalysisLocalize.dataflowMessageUnboxingMethodReference()) - .range((PsiElement) expression) + .range(expression) .create(); } } @@ -188,7 +187,7 @@ private void checkLoopCondition(PsiExpression condition) { if (condition != null && condition.textMatches(PsiKeyword.FALSE)) { holder.newProblem(JavaAnalysisLocalize.dataflowMessageConstantNoRef(0)) .range(condition) - .withFix(createSimplifyBooleanExpressionFix(condition, false)) + .withOptionalFix(createSimplifyBooleanExpressionFix(condition, false)) .create(); } } @@ -284,18 +283,17 @@ protected List createMethodReferenceNPEFixes(PsiMethodReferenceEx return Collections.emptyList(); } - protected @Nullable - LocalQuickFix createUnwrapSwitchLabelFix() { + protected LocalQuickFix createUnwrapSwitchLabelFix() { return null; } - protected @Nullable - LocalQuickFix createIntroduceVariableFix() { + protected LocalQuickFix createIntroduceVariableFix() { return null; } + @Nullable protected LocalQuickFix createRemoveAssignmentFix(PsiAssignmentExpression assignment) { return null; } @@ -405,7 +403,7 @@ private void reportUnreachableSwitchBranches(Map labe coveredSwitches.add(statement); holder.newProblem(JavaAnalysisLocalize.dataflowMessageOnlySwitchLabel()) .range(label) - .withFix(createUnwrapSwitchLabelFix()) + .withOptionalFix(createUnwrapSwitchLabelFix()) .create(); } for (Map.Entry entry : labelReachability.entrySet()) { @@ -652,7 +650,7 @@ private void reportDuplicateAssignments(ProblemReporter reporter, DataFlowInstru : JavaAnalysisLocalize.dataflowMessageRedundantAssignment(); reporter.newProblem(message) .range(expr) - .withFix(createRemoveAssignmentFix(assignment)) + .withOptionalFix(createRemoveAssignmentFix(assignment)) .create(); }); } @@ -698,7 +696,7 @@ protected void reportNullabilityProblems( NullabilityProblemKind.callMethodRefNPE.ifMyProblem( problem, methodRef -> reporter.newProblem(JavaAnalysisLocalize.dataflowMessageNpeMethodrefInvocation()) - .range((PsiElement) methodRef) + .range(methodRef) .withFixes(createMethodReferenceNPEFixes(methodRef, reporter.isOnTheFly())) .create() ); @@ -716,14 +714,14 @@ protected void reportNullabilityProblems( NullabilityProblemKind.passingToNotNullMethodRefParameter.ifMyProblem( problem, methodRef -> reporter.newProblem(JavaAnalysisLocalize.dataflowMessagePassingNullableArgumentMethodref()) - .range((PsiElement) methodRef) + .range(methodRef) .withFixes(createMethodReferenceNPEFixes(methodRef, reporter.isOnTheFly())) .create() ); NullabilityProblemKind.unboxingMethodRefParameter.ifMyProblem( problem, methodRef -> reporter.newProblem(JavaAnalysisLocalize.dataflowMessageUnboxingNullableArgumentMethodref()) - .range((PsiElement) methodRef) + .range(methodRef) .withFixes(createMethodReferenceNPEFixes(methodRef, reporter.isOnTheFly())) .create() ); @@ -774,7 +772,7 @@ protected void reportNullabilityProblems( NullabilityProblemKind.passingToNonAnnotatedMethodRefParameter.ifMyProblem( problem, methodRef -> reporter.newProblem(problem.getMessage(expressions)) - .range((PsiElement) methodRef) + .range(methodRef) .create() ); NullabilityProblemKind.passingToNonAnnotatedParameter.ifMyProblem( @@ -829,7 +827,7 @@ private void reportMethodReferenceProblems(ProblemsHolder holder, DataFlowInstru if (result != ConstantResult.UNKNOWN) { Object value = result.value(); holder.newProblem(JavaAnalysisLocalize.dataflowMessageConstantMethodReference(value)) - .range((PsiElement) methodRef) + .range(methodRef) .withFix(createReplaceWithTrivialLambdaFix(value)) .create(); } @@ -858,7 +856,7 @@ private void reportAlwaysReturnsNotNull(ProblemsHolder holder, PsiElement scope) NullableStuffInspectionBase.getPresentableAnnoName(annotation), method.getName() )) - .range((PsiElement) annoName) + .range(annoName) .withOptionalFix(AddAnnotationPsiFix.createAddNotNullFix(method)) .withOptionalFix( holder.isOnTheFly()