From 0bd16940799f9d95cd9f5581cff9c2ad25562092 Mon Sep 17 00:00:00 2001 From: "Anna.Kozlova" Date: Tue, 21 Nov 2017 18:18:07 +0100 Subject: [PATCH] preserve comments in invert if (IDEA-182500) --- .../intention/impl/InvertIfConditionAction.java | 3 ++- .../invertIfCondition/afterContinueWithComment.java | 13 +++++++++++++ .../beforeContinueWithComment.java | 11 +++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 java/java-tests/testData/codeInsight/invertIfCondition/afterContinueWithComment.java create mode 100644 java/java-tests/testData/codeInsight/invertIfCondition/beforeContinueWithComment.java diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/InvertIfConditionAction.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/InvertIfConditionAction.java index 9343ee36e2eb..dd00db5830ea 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/InvertIfConditionAction.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/InvertIfConditionAction.java @@ -29,6 +29,7 @@ import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiUtil; import com.intellij.util.ArrayUtilRt; import com.intellij.util.IncorrectOperationException; +import com.siyeh.ig.psiutils.CommentTracker; import org.jetbrains.annotations.NotNull; import java.util.List; @@ -312,7 +313,7 @@ public class InvertIfConditionAction extends PsiElementBaseIntentionAction { else if (thenBranch instanceof PsiBlockStatement) { PsiStatement[] statements = ((PsiBlockStatement) thenBranch).getCodeBlock().getStatements(); if (statements.length > 0 && statements[statements.length - 1] instanceof PsiContinueStatement) { - statements[statements.length - 1].delete(); + new CommentTracker().deleteAndRestoreComments(statements[statements.length - 1]); } } } diff --git a/java/java-tests/testData/codeInsight/invertIfCondition/afterContinueWithComment.java b/java/java-tests/testData/codeInsight/invertIfCondition/afterContinueWithComment.java new file mode 100644 index 000000000000..780b07ba5798 --- /dev/null +++ b/java/java-tests/testData/codeInsight/invertIfCondition/afterContinueWithComment.java @@ -0,0 +1,13 @@ +// "Invert 'if' condition" "true" +class A { + void f(){ + while (true) { + if (false) { + System.out.println(); + } + else { + //comment + } + } + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/invertIfCondition/beforeContinueWithComment.java b/java/java-tests/testData/codeInsight/invertIfCondition/beforeContinueWithComment.java new file mode 100644 index 000000000000..fccdfeb792fc --- /dev/null +++ b/java/java-tests/testData/codeInsight/invertIfCondition/beforeContinueWithComment.java @@ -0,0 +1,11 @@ +// "Invert 'if' condition" "true" +class A { + void f(){ + while (true) { + if (true) { + continue;//comment + } + System.out.println(); + } + } +} \ No newline at end of file