From cab7eb3b003e4e4afe4a761731a52daa19da2a8e Mon Sep 17 00:00:00 2001 From: Mikhail Pyltsin Date: Fri, 7 Apr 2023 16:39:13 +0200 Subject: [PATCH] [intention-preview] IDEA-317060 fix creation of a statement from expression GitOrigin-RevId: 95c10072de86b6c86354823c9dec8a828bebcef4 --- .../impl/quickfix/RemoveUnusedVariableUtil.java | 1 + .../afterSwitchExpessionSideEffect.java | 7 +++++++ .../beforeSwitchExpessionSideEffect.java | 15 +++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/afterSwitchExpessionSideEffect.java create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/beforeSwitchExpessionSideEffect.java diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveUnusedVariableUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveUnusedVariableUtil.java index 9aa8ad8e3935..f0118c370aa1 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveUnusedVariableUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveUnusedVariableUtil.java @@ -45,6 +45,7 @@ public final class RemoveUnusedVariableUtil { List sideEffects = new ArrayList<>(); boolean hasSideEffects = checkSideEffects(element, variableToIgnore, sideEffects); if (!hasSideEffects || sideEffects.isEmpty()) return RemoveMode.DELETE_ALL; + if (!PsiUtil.isStatement(element)) return RemoveMode.DELETE_ALL; return RemoveMode.MAKE_STATEMENT; } diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/afterSwitchExpessionSideEffect.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/afterSwitchExpessionSideEffect.java new file mode 100644 index 000000000000..364a2db71754 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/afterSwitchExpessionSideEffect.java @@ -0,0 +1,7 @@ +// "Remove redundant initializer" "true-preview" +class A { + void test2(){ + + String str; + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/beforeSwitchExpessionSideEffect.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/beforeSwitchExpessionSideEffect.java new file mode 100644 index 000000000000..620aafcad24f --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/unusedAssignment/beforeSwitchExpessionSideEffect.java @@ -0,0 +1,15 @@ +// "Remove redundant initializer" "true-preview" +class A { + void test2(){ + + String str = switch (1) { + case 1 -> "a"; + default -> + { + str = "b"; + System.out.println(str); + yield str + "c"; + } + }; + } +} \ No newline at end of file