From 13a4cfba60a85ea5dade9fc80c47f502fce280fc Mon Sep 17 00:00:00 2001 From: Jordan Kiesel Date: Mon, 13 Oct 2025 23:23:22 -0600 Subject: [PATCH] fix: avoid unwrapping empty array initializer with comments --- .../prettier-plugin-java/src/printers/helpers.ts | 16 +++++++++------- .../test/unit-test/arrays/_input.java | 4 ++++ .../test/unit-test/arrays/_output.java | 4 ++++ 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/packages/prettier-plugin-java/src/printers/helpers.ts b/packages/prettier-plugin-java/src/printers/helpers.ts index b3b1c418f..15e6911ae 100644 --- a/packages/prettier-plugin-java/src/printers/helpers.ts +++ b/packages/prettier-plugin-java/src/printers/helpers.ts @@ -249,14 +249,16 @@ export function printArrayInitializer< T extends JavaNonTerminal, P extends IterProperties >(path: AstPath, print: JavaPrintFn, options: JavaParserOptions, child: P) { - const list: Doc[] = []; - if (child && child in path.node.children) { - list.push(call(path, print, child)); - if (options.trailingComma !== "none") { - list.push(ifBreak(",")); - } + if (!(child && child in path.node.children)) { + const danglingComments = printDanglingComments(path); + return danglingComments.length + ? ["{", indent([hardline, ...danglingComments]), hardline, "}"] + : "{}"; + } + const list = [call(path, print, child)]; + if (options.trailingComma !== "none") { + list.push(ifBreak(",")); } - list.push(...printDanglingComments(path)); return list.length ? group(["{", indent([line, ...list]), line, "}"]) : "{}"; } diff --git a/packages/prettier-plugin-java/test/unit-test/arrays/_input.java b/packages/prettier-plugin-java/test/unit-test/arrays/_input.java index 816582bd6..401d80e20 100644 --- a/packages/prettier-plugin-java/test/unit-test/arrays/_input.java +++ b/packages/prettier-plugin-java/test/unit-test/arrays/_input.java @@ -4,4 +4,8 @@ class Array { Class aaaaaaaaaaaaaaaa = new Aaaaaaaaaaaaaaaa[1].getClass(); Class aaaaaaaaaaaaaaaa = new Aaaaaaaaaaaaaaaa[1111111111111111111].getClass(); Class aaaaaaaaaaaaaaaa = new Aaaaaaaaaaaaaaaa[]{ new Aaaaaaaaaaaaaaaa() }.getClass(); + + String[] DATA = { + // nothing yet + }; } diff --git a/packages/prettier-plugin-java/test/unit-test/arrays/_output.java b/packages/prettier-plugin-java/test/unit-test/arrays/_output.java index 771a0867e..b36ea1592 100644 --- a/packages/prettier-plugin-java/test/unit-test/arrays/_output.java +++ b/packages/prettier-plugin-java/test/unit-test/arrays/_output.java @@ -10,4 +10,8 @@ class Array { Class aaaaaaaaaaaaaaaa = new Aaaaaaaaaaaaaaaa[] { new Aaaaaaaaaaaaaaaa(), }.getClass(); + + String[] DATA = { + // nothing yet + }; }