From 04b2a7b1993f7f513068b20c86941a2be28d7697 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Thu, 29 Mar 2018 15:33:25 +0200 Subject: [PATCH] enable split if with redundant parenthesis --- .../intellij/codeInsight/intention/impl/SplitIfAction.java | 6 ++++-- .../codeInsight/splitIfAction/beforeOrParenthesis.java | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/SplitIfAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/SplitIfAction.java index 133060278b90..09d436fd8ea4 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/SplitIfAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/SplitIfAction.java @@ -24,6 +24,7 @@ import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.psi.util.PsiTreeUtil; +import com.intellij.psi.util.PsiUtil; import com.intellij.refactoring.util.RefactoringUtil; import com.intellij.util.IncorrectOperationException; import org.jetbrains.annotations.NotNull; @@ -42,8 +43,9 @@ public class SplitIfAction extends PsiElementBaseIntentionAction { final PsiPolyadicExpression expression = SplitConditionUtil.findCondition(element); if (expression == null) return false; - if (!(expression.getParent() instanceof PsiIfStatement)) return false; - PsiIfStatement ifStatement = (PsiIfStatement)expression.getParent(); + PsiElement parent = PsiUtil.skipParenthesizedExprUp(expression.getParent()); + if (!(parent instanceof PsiIfStatement)) return false; + PsiIfStatement ifStatement = (PsiIfStatement)parent; if (!PsiTreeUtil.isAncestor(ifStatement.getCondition(), expression, false)) return false; if (ifStatement.getThenBranch() == null) return false; diff --git a/java/java-tests/testData/codeInsight/splitIfAction/beforeOrParenthesis.java b/java/java-tests/testData/codeInsight/splitIfAction/beforeOrParenthesis.java index 32c9a7b59d8b..fca9c86c37c6 100644 --- a/java/java-tests/testData/codeInsight/splitIfAction/beforeOrParenthesis.java +++ b/java/java-tests/testData/codeInsight/splitIfAction/beforeOrParenthesis.java @@ -1,6 +1,6 @@ class C { void foo() { - if ((a) || (b)) { + if (((a) || (b))) { call(); } }