From 3634a7117c218c67e9410e0b734ba6faf6b59a14 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 28 Aug 2018 13:15:44 +0300 Subject: [PATCH] invert if: avoid duplicated comments (IDEA-197988) --- .../codeInsight/intention/impl/InvertIfConditionAction.java | 6 +++--- .../codeInsight/invertIfCondition/afterTailingContinue.java | 1 + .../invertIfCondition/beforeTailingContinue.java | 1 + 3 files changed, 5 insertions(+), 3 deletions(-) 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 d3398e53b084..13ae18030a59 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 @@ -227,7 +227,7 @@ public class InvertIfConditionAction extends PsiElementBaseIntentionAction { } } else { if (!(thenBranch instanceof PsiReturnStatement)) { - ifStatement = addAfterWithinCodeBlock(ifStatement, thenBranch); + ifStatement = addAfterWithinCodeBlock(ifStatement, ct.markUnchanged(thenBranch)); } } ct.replaceAndRestoreComments(Objects.requireNonNull(ifStatement.getThenBranch()), statement); @@ -241,14 +241,14 @@ public class InvertIfConditionAction extends PsiElementBaseIntentionAction { element instanceof PsiForeachStatement && flow.getStartOffset(element) + 1 == endOffset) { PsiStatement statement = factory.createStatementFromText("continue;", ifStatement); statement = (PsiStatement)codeStyle.reformat(statement); - ifStatement = addAfterWithinCodeBlock(ifStatement, thenBranch); + ifStatement = addAfterWithinCodeBlock(ifStatement, ct.markUnchanged(thenBranch)); Objects.requireNonNull(ifStatement.getThenBranch()).replace(statement); return ifStatement; } if (element instanceof PsiReturnStatement) { PsiReturnStatement returnStatement = (PsiReturnStatement) element; - ifStatement = addAfterWithinCodeBlock(ifStatement, thenBranch); + ifStatement = addAfterWithinCodeBlock(ifStatement, ct.markUnchanged(thenBranch)); ct.replaceAndRestoreComments(Objects.requireNonNull(ifStatement.getThenBranch()), returnStatement.copy()); ControlFlow flow2 = buildControlFlow(findCodeBlock(ifStatement)); diff --git a/java/java-tests/testData/codeInsight/invertIfCondition/afterTailingContinue.java b/java/java-tests/testData/codeInsight/invertIfCondition/afterTailingContinue.java index 26ddeee2602b..dd600e749309 100644 --- a/java/java-tests/testData/codeInsight/invertIfCondition/afterTailingContinue.java +++ b/java/java-tests/testData/codeInsight/invertIfCondition/afterTailingContinue.java @@ -6,6 +6,7 @@ public class C { continue; } else { + //c1 return; } } diff --git a/java/java-tests/testData/codeInsight/invertIfCondition/beforeTailingContinue.java b/java/java-tests/testData/codeInsight/invertIfCondition/beforeTailingContinue.java index 051a6788bc2f..d99314b3255e 100644 --- a/java/java-tests/testData/codeInsight/invertIfCondition/beforeTailingContinue.java +++ b/java/java-tests/testData/codeInsight/invertIfCondition/beforeTailingContinue.java @@ -3,6 +3,7 @@ public class C { public void test() { for (int i = 0; i < 42; i++) { if (i == 7) { + //c1 return; } continue;