From ce6d666b08e91e981f645f9a2bdc4f3e1e38fd1f Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 27 Sep 2021 12:37:32 +0200 Subject: [PATCH] [java] local can be final in switches: avoid redundant computation; test data for inc operation (IDEA-229646) GitOrigin-RevId: d53e55409a8a74c3374356f4943335e676ea0b21 --- .../codeInspection/localCanBeFinal/LocalCanBeFinal.java | 1 + .../localCanBeFinal/{SwitchBraches.java => SwitchBranches.java} | 2 ++ .../com/intellij/java/codeInspection/LocalCanBeFinalTest.java | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) rename java/java-tests/testData/inspection/localCanBeFinal/{SwitchBraches.java => SwitchBranches.java} (78%) diff --git a/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java b/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java index 89ba35cbb606..c5d6494af3a0 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java +++ b/java/java-analysis-impl/src/com/intellij/codeInspection/localCanBeFinal/LocalCanBeFinal.java @@ -126,6 +126,7 @@ public class LocalCanBeFinal extends AbstractBaseJavaLocalInspectionTool impleme } super.visitCodeBlock(block); Set declared = getDeclaredVariables(block); + if (declared.isEmpty()) return; PsiElement anchor = block; if (block.getParent() instanceof PsiSwitchBlock) { anchor = block.getParent(); diff --git a/java/java-tests/testData/inspection/localCanBeFinal/SwitchBraches.java b/java/java-tests/testData/inspection/localCanBeFinal/SwitchBranches.java similarity index 78% rename from java/java-tests/testData/inspection/localCanBeFinal/SwitchBraches.java rename to java/java-tests/testData/inspection/localCanBeFinal/SwitchBranches.java index 24bb460694b2..1f4669cfc19c 100644 --- a/java/java-tests/testData/inspection/localCanBeFinal/SwitchBraches.java +++ b/java/java-tests/testData/inspection/localCanBeFinal/SwitchBranches.java @@ -6,10 +6,12 @@ class Test { long k; k = 0; long l = 0; + int m; m = 0; break; case 2: k = 2; l = 3; + m++; break; default: break; diff --git a/java/java-tests/testSrc/com/intellij/java/codeInspection/LocalCanBeFinalTest.java b/java/java-tests/testSrc/com/intellij/java/codeInspection/LocalCanBeFinalTest.java index 223150283567..c3a33796edc1 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInspection/LocalCanBeFinalTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInspection/LocalCanBeFinalTest.java @@ -44,7 +44,7 @@ public class LocalCanBeFinalTest extends LightJavaCodeInsightFixtureTestCase { myTool.REPORT_VARIABLES = true; doTest(); } - public void testSwitchBraches() { + public void testSwitchBranches() { myTool.REPORT_PARAMETERS = false; myTool.REPORT_VARIABLES = true; doTest();