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 50c89f5ffc25..5e465057c8d4 100644 --- a/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java +++ b/java/java-impl/src/com/intellij/refactoring/util/InlineUtil.java @@ -196,6 +196,12 @@ public class InlineUtil { if (nextSibling.getNode().getElementType() == JavaTokenType.RBRACE) break; lastInitializerSibling = nextSibling; } + if (lastInitializerSibling instanceof PsiWhiteSpace) { + lastInitializerSibling = PsiTreeUtil.skipSiblingsBackward(lastInitializerSibling, PsiWhiteSpace.class); + } + if (lastInitializerSibling.getNode().getElementType() == JavaTokenType.COMMA) { + lastInitializerSibling = lastInitializerSibling.getPrevSibling(); + } argumentList.addRange(initializers[0], lastInitializerSibling); } args[args.length - 1].delete(); diff --git a/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas.java b/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas.java new file mode 100644 index 000000000000..952e96caa581 --- /dev/null +++ b/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas.java @@ -0,0 +1,9 @@ +public class Main { + public static void main(String[] args) { + display(new String[]{ + "hi", + }); + } + + private static void display(String... messages) { } +} \ No newline at end of file diff --git a/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas_after.java b/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas_after.java new file mode 100644 index 000000000000..95e5c5d42671 --- /dev/null +++ b/java/java-tests/testData/inspection/redundantArrayForVarargs/quickFix/RemoveTailingCommas_after.java @@ -0,0 +1,7 @@ +public class Main { + public static void main(String[] args) { + display("hi"); + } + + private static void display(String... messages) { } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInspection/RedundantArray4VarargsCallInspectionTest.java b/java/java-tests/testSrc/com/intellij/codeInspection/RedundantArray4VarargsCallInspectionTest.java index f35305a8d60a..e25ff44c5a60 100644 --- a/java/java-tests/testSrc/com/intellij/codeInspection/RedundantArray4VarargsCallInspectionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInspection/RedundantArray4VarargsCallInspectionTest.java @@ -55,6 +55,10 @@ public class RedundantArray4VarargsCallInspectionTest extends UsefulTestCase { doTest(); } + public void testRemoveTailingCommas() { + doTest(); + } + private void doTest() { myFixture.configureByFile(getTestName(false) + ".java"); myFixture.launchAction(assertOneElement(myFixture.filterAvailableIntentions(InspectionsBundle.message("inspection.redundant.array.creation.quickfix"))));