From 2314c866f977d11c1ea6cc05f3433dcac75bbf3f Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 5 Jun 2018 17:50:18 +0300 Subject: [PATCH] keep comments on remove redundant array initializer (IDEA-193337) --- .../src/com/intellij/refactoring/util/InlineUtil.java | 7 +++++-- .../quickFix/RemoveTailingCommas.java | 3 ++- .../quickFix/RemoveTailingCommas_after.java | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java b/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java index d39b86336114..f10ceadb3c3a 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java @@ -30,6 +30,7 @@ import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.RedundantCastUtil; import com.intellij.refactoring.RefactoringBundle; import com.intellij.util.IncorrectOperationException; +import com.siyeh.ig.psiutils.CommentTracker; import org.jetbrains.annotations.NotNull; import java.util.*; @@ -216,7 +217,8 @@ public class InlineUtil { arrayCreation.delete(); return; } - + + CommentTracker cm = new CommentTracker(); PsiExpression[] initializers = arrayInitializer.getInitializers(); if (initializers.length > 0) { PsiElement lastInitializerSibling = initializers[initializers.length - 1]; @@ -240,8 +242,9 @@ public class InlineUtil { firstElement = leadingComment; } argumentList.addRange(firstElement, lastInitializerSibling); + cm.markRangeUnchanged(firstElement, lastInitializerSibling); } - args[args.length - 1].delete(); + cm.deleteAndRestoreComments(args[args.length - 1]); } catch (IncorrectOperationException e) { LOG.error(e); diff --git a/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas.java b/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas.java index 952e96caa581..2c9a0df07da8 100644 --- a/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas.java +++ b/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas.java @@ -1,6 +1,7 @@ public class Main { public static void main(String[] args) { - display(new String[]{ + display(new //c1 + String[]{ "hi", }); } diff --git a/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas_after.java b/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas_after.java index 95e5c5d42671..46aafe43e0ea 100644 --- a/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas_after.java +++ b/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas_after.java @@ -1,6 +1,7 @@ public class Main { public static void main(String[] args) { - display("hi"); + display(//c1 + "hi"); } private static void display(String... messages) { }