diff --git a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveRedundantElseAction.java b/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveRedundantElseAction.java deleted file mode 100644 index 28db235e1e1b..000000000000 --- a/java/java-impl/src/com/intellij/codeInsight/daemon/impl/quickfix/RemoveRedundantElseAction.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright 2000-2009 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intellij.codeInsight.daemon.impl.quickfix; - -import com.intellij.codeInsight.FileModificationService; -import com.intellij.codeInsight.daemon.QuickFixBundle; -import com.intellij.codeInsight.intention.PsiElementBaseIntentionAction; -import com.intellij.openapi.diagnostic.Logger; -import com.intellij.openapi.editor.Editor; -import com.intellij.openapi.project.Project; -import com.intellij.psi.*; -import com.intellij.psi.controlFlow.*; -import com.intellij.psi.util.PsiTreeUtil; -import com.intellij.util.BitUtil; -import com.intellij.util.IncorrectOperationException; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -/** - * @author ven - */ -public class RemoveRedundantElseAction extends PsiElementBaseIntentionAction { - private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.daemon.impl.quickfix.RemoveRedundantElseAction"); - - @Override - @NotNull - public String getText() { - return QuickFixBundle.message("remove.redundant.else.fix"); - } - - @Override - @NotNull - public String getFamilyName() { - return QuickFixBundle.message("remove.redundant.else.fix"); - } - - @Override - public boolean isAvailable(@NotNull Project project, Editor editor, @NotNull PsiElement element) { - if (element instanceof PsiKeyword && - element.getParent() instanceof PsiIfStatement && - PsiKeyword.ELSE.equals(element.getText())) { - PsiIfStatement ifStatement = (PsiIfStatement)element.getParent(); - if (ifStatement.getElseBranch() == null) return false; - PsiStatement thenBranch = ifStatement.getThenBranch(); - if (thenBranch == null) return false; - PsiElement block = PsiTreeUtil.getParentOfType(ifStatement, PsiCodeBlock.class); - if (block != null) { - while (cantCompleteNormally(thenBranch, block)) { - thenBranch = getPrevThenBranch(thenBranch); - if (thenBranch == null) return true; - } - return false; - } - } - return false; - } - - @Nullable - private static PsiStatement getPrevThenBranch(@NotNull PsiElement thenBranch) { - final PsiElement ifStatement = thenBranch.getParent(); - final PsiElement parent = ifStatement.getParent(); - if (parent instanceof PsiIfStatement && ((PsiIfStatement)parent).getElseBranch() == ifStatement) { - return ((PsiIfStatement)parent).getThenBranch(); - } - return null; - } - - private static boolean cantCompleteNormally(@NotNull PsiStatement thenBranch, PsiElement block) { - try { - ControlFlow controlFlow = ControlFlowFactory.getInstance(thenBranch.getProject()).getControlFlow(block, LocalsOrMyInstanceFieldsControlFlowPolicy.getInstance()); - int startOffset = controlFlow.getStartOffset(thenBranch); - int endOffset = controlFlow.getEndOffset(thenBranch); - return startOffset != -1 && endOffset != -1 && !BitUtil.isSet(ControlFlowUtil.getCompletionReasons(controlFlow, startOffset, endOffset), ControlFlowUtil.NORMAL_COMPLETION_REASON); - } - catch (AnalysisCanceledException e) { - return false; - } - } - - @Override - public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException { - if (!FileModificationService.getInstance().preparePsiElementForWrite(element)) return; - PsiIfStatement ifStatement = (PsiIfStatement)element.getParent(); - LOG.assertTrue(ifStatement != null && ifStatement.getElseBranch() != null); - PsiStatement elseBranch = ifStatement.getElseBranch(); - if (elseBranch instanceof PsiBlockStatement) { - PsiElement[] statements = ((PsiBlockStatement)elseBranch).getCodeBlock().getStatements(); - if (statements.length > 0) { - ifStatement.getParent().addRangeAfter(statements[0], statements[statements.length-1], ifStatement); - } - } else { - ifStatement.getParent().addAfter(elseBranch, ifStatement); - } - ifStatement.getElseBranch().delete(); - } -} diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse/after1.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse/after1.java deleted file mode 100644 index d0d55761f11b..000000000000 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse/after1.java +++ /dev/null @@ -1,13 +0,0 @@ -// "Remove redundant 'else'" "true" -class a { - void foo() { - int a = 0; - int b = 0; - if (a != b) { - return; - } - a = b; - a++; - } -} - diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse/before1.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse/before1.java deleted file mode 100644 index ea4609835464..000000000000 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse/before1.java +++ /dev/null @@ -1,14 +0,0 @@ -// "Remove redundant 'else'" "true" -class a { - void foo() { - int a = 0; - int b = 0; - if (a != b) { - return; - } else { - a = b; - } - a++; - } -} - diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse/beforeCanThrowException.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse/beforeCanThrowException.java deleted file mode 100644 index 8fd59ef094f3..000000000000 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse/beforeCanThrowException.java +++ /dev/null @@ -1,15 +0,0 @@ -// "Remove redundant 'else'" "false" -import java.io.IOException; -class a { - void foo(boolean condition) throws IOException{ - if (condition) { - tMethod(); - } - else { - System.out.println("else"); - } - } - - void tMethod() throws IOException {} -} - diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse/beforeIfElseChain.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse/beforeIfElseChain.java deleted file mode 100644 index f702178d781f..000000000000 --- a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse/beforeIfElseChain.java +++ /dev/null @@ -1,17 +0,0 @@ -// "Remove redundant 'else'" "false" -class a { - void foo() { - int a = 0; - int b = 0; - if (a != b) { - a = 10; - } else if (a + 1 == b) { - return; - } - else { - a = b; - } - a++; - } -} - diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/RemoveRedundantElseActionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/RemoveRedundantElseActionTest.java deleted file mode 100644 index 0a33ada748f8..000000000000 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/quickFix/RemoveRedundantElseActionTest.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright 2000-2010 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.intellij.codeInsight.daemon.quickFix; - -/** - * User: anna - * Date: Aug 30, 2010 - */ -public class RemoveRedundantElseActionTest extends LightQuickFixParameterizedTestCase { - - public void test() throws Exception { doAllTests(); } - - @Override - protected String getBasePath() { - return "/codeInsight/daemonCodeAnalyzer/quickFix/removeRedundantElse"; - } - -} - diff --git a/resources-en/src/intentionDescriptions/RemoveRedundantElseAction/after.java.template b/resources-en/src/intentionDescriptions/RemoveRedundantElseAction/after.java.template deleted file mode 100644 index 6bbd9d56135a..000000000000 --- a/resources-en/src/intentionDescriptions/RemoveRedundantElseAction/after.java.template +++ /dev/null @@ -1,8 +0,0 @@ -public class X { - void f(int i) { - if (i==0) { - return; - } - int j = 0; - } -} \ No newline at end of file diff --git a/resources-en/src/intentionDescriptions/RemoveRedundantElseAction/before.java.template b/resources-en/src/intentionDescriptions/RemoveRedundantElseAction/before.java.template deleted file mode 100644 index edad99d14f45..000000000000 --- a/resources-en/src/intentionDescriptions/RemoveRedundantElseAction/before.java.template +++ /dev/null @@ -1,10 +0,0 @@ -public class X { - void f(int i) { - if (i==0) { - return; - } - else { - int j = 0; - } - } -} \ No newline at end of file diff --git a/resources-en/src/intentionDescriptions/RemoveRedundantElseAction/description.html b/resources-en/src/intentionDescriptions/RemoveRedundantElseAction/description.html deleted file mode 100644 index 8992a7b29b2c..000000000000 --- a/resources-en/src/intentionDescriptions/RemoveRedundantElseAction/description.html +++ /dev/null @@ -1,7 +0,0 @@ - - -This intention detaches else clause from the if statement, -if corresponding then clause never completes normally. - - - diff --git a/resources/src/META-INF/IdeaPlugin.xml b/resources/src/META-INF/IdeaPlugin.xml index 4be169a82fed..ca43d4c44eda 100644 --- a/resources/src/META-INF/IdeaPlugin.xml +++ b/resources/src/META-INF/IdeaPlugin.xml @@ -826,10 +826,6 @@ com.intellij.codeInsight.intention.impl.ExtractIfConditionAction Java/Control Flow - - com.intellij.codeInsight.daemon.impl.quickfix.RemoveRedundantElseAction - Java/Control Flow - com.intellij.codeInsight.intention.impl.AddNotNullAnnotationIntention Java/Annotations