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 dd32cd06dc3e..59f7cad05f12 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 @@ -18,7 +18,6 @@ package com.intellij.codeInsight.daemon.impl.quickfix; import com.intellij.psi.*; import com.intellij.psi.util.InheritanceUtil; import com.intellij.psi.util.PropertyUtil; -import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiUtil; import com.intellij.util.IncorrectOperationException; import gnu.trove.THashSet; @@ -221,7 +220,12 @@ public class RemoveUnusedVariableUtil { } } else if (element instanceof PsiExpressionStatement && deleteMode != CANCEL) { - element.delete(); + final PsiElement parent = element.getParent(); + if (parent instanceof PsiIfStatement || parent instanceof PsiLoopStatement && ((PsiLoopStatement)parent).getBody() == element) { + element.replace(JavaPsiFacade.getElementFactory(element.getProject()).createStatementFromText(";", element)); + } else { + element.delete(); + } break; } else if (element instanceof PsiVariable && element == variable) { diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/afterIfNoBlock.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/afterIfNoBlock.java new file mode 100644 index 000000000000..19fcc59c4a64 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/afterIfNoBlock.java @@ -0,0 +1,9 @@ +// "Remove variable 'foo'" "true" +class a { + private int refactorTest(int i) { + int bar = 0; + if (i >0) ; + return bar; + } +} + diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/beforeIfNoBlock.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/beforeIfNoBlock.java new file mode 100644 index 000000000000..5648eaec5c28 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeUnusedVariable/beforeIfNoBlock.java @@ -0,0 +1,10 @@ +// "Remove variable 'foo'" "true" +class a { + private int refactorTest(int i) { + int foo = 0; + int bar = 0; + if (i >0) foo++; + return bar; + } +} +