From cb15e18df49ee16cf2a1eccd62632d05d89a8f65 Mon Sep 17 00:00:00 2001 From: Bartek Pacia Date: Wed, 29 Oct 2025 10:43:51 +0100 Subject: [PATCH] [java-inspections] IJ-CR-179807 redundant cast: simplify code Related to IDEA-381105. GitOrigin-RevId: b06c79e9407a54b4a79e68d49156b3780470cef5 --- .../src/com/intellij/psi/util/RedundantCastUtil.java | 8 +++----- .../{Regression.java => LambdaParameterFieldAccess.java} | 0 ...nSimple.java => LambdaParameterFieldAccessSimple.java} | 0 .../codeInspection/RedundantCastInspectionLambdaTest.java | 4 ++-- 4 files changed, 5 insertions(+), 7 deletions(-) rename java/java-tests/testData/inspection/redundantCast/lambda/{Regression.java => LambdaParameterFieldAccess.java} (100%) rename java/java-tests/testData/inspection/redundantCast/lambda/{RegressionSimple.java => LambdaParameterFieldAccessSimple.java} (100%) diff --git a/java/java-analysis-impl/src/com/intellij/psi/util/RedundantCastUtil.java b/java/java-analysis-impl/src/com/intellij/psi/util/RedundantCastUtil.java index 96cd2fb4ee18..d6e40b3e2203 100644 --- a/java/java-analysis-impl/src/com/intellij/psi/util/RedundantCastUtil.java +++ b/java/java-analysis-impl/src/com/intellij/psi/util/RedundantCastUtil.java @@ -322,11 +322,9 @@ public final class RedundantCastUtil { JavaResolveResult newResult = newExpression.advancedResolve(false); if (!newResult.isValidResult() || !oldMember.equals(newResult.getElement())) return false; - if (!Objects.equals(newExpression.getType(), refExpression.getType())) { - PsiType expected = ExpectedTypeUtils.findExpectedType(refExpression, false); - PsiType actual = newExpression.getType(); - if (expected == null || actual == null || !TypeConversionUtil.isAssignable(expected, actual)) return false; - } + PsiType expected = ExpectedTypeUtils.findExpectedType(refExpression, false); + PsiType actual = newExpression.getType(); + if (expected != null && (actual == null || !TypeConversionUtil.isAssignable(expected, actual))) return false; if (parent instanceof PsiReferenceExpression parentRef && !newResult.getSubstitutor().equals(resolveResult.getSubstitutor())) { return isCastInReferenceQualifierRedundant(parentRef); } diff --git a/java/java-tests/testData/inspection/redundantCast/lambda/Regression.java b/java/java-tests/testData/inspection/redundantCast/lambda/LambdaParameterFieldAccess.java similarity index 100% rename from java/java-tests/testData/inspection/redundantCast/lambda/Regression.java rename to java/java-tests/testData/inspection/redundantCast/lambda/LambdaParameterFieldAccess.java diff --git a/java/java-tests/testData/inspection/redundantCast/lambda/RegressionSimple.java b/java/java-tests/testData/inspection/redundantCast/lambda/LambdaParameterFieldAccessSimple.java similarity index 100% rename from java/java-tests/testData/inspection/redundantCast/lambda/RegressionSimple.java rename to java/java-tests/testData/inspection/redundantCast/lambda/LambdaParameterFieldAccessSimple.java diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/RedundantCastInspectionLambdaTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/RedundantCastInspectionLambdaTest.java index 566f777f721b..40f49739fc4c 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/RedundantCastInspectionLambdaTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/RedundantCastInspectionLambdaTest.java @@ -59,8 +59,8 @@ public class RedundantCastInspectionLambdaTest extends LightDaemonAnalyzerTestCa public void testExplicitNullabilityAnnotation() { doTest(); } @TestFor(issues = "IDEA-381105") - public void testRegression() { doTest(); } + public void testLambdaParameterFieldAccess() { doTest(); } @TestFor(issues = "IDEA-381105") - public void testRegressionSimple() { doTest(); } + public void testLambdaParameterFieldAccessSimple() { doTest(); } } \ No newline at end of file