From ac07355f5507cdb3a741ec1122e5e9983eac3936 Mon Sep 17 00:00:00 2001 From: Joe Darcy Date: Tue, 12 Dec 2023 21:00:50 +0000 Subject: [PATCH] 8320200: Use Elements predicates for record constructors to improve print output Reviewed-by: vromero --- .../javac/processing/PrintingProcessor.java | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java index 701091fcd70..a93c715ec21 100644 --- a/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java +++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/PrintingProcessor.java @@ -155,14 +155,25 @@ public class PrintingProcessor extends AbstractProcessor { break; } - writer.print("("); - printParameters(e); - writer.print(")"); - AnnotationValue defaultValue = e.getDefaultValue(); - if (defaultValue != null) - writer.print(" default " + defaultValue); + if (elementUtils.isCompactConstructor(e)) { + // A record's compact constructor by definition + // lacks source-explicit parameters and lacks a + // throws clause. + writer.print(" {} /* compact constructor */ "); + } else { + writer.print("("); + printParameters(e); + writer.print(")"); + + // Display any default values for an annotation + // interface element + AnnotationValue defaultValue = e.getDefaultValue(); + if (defaultValue != null) + writer.print(" default " + defaultValue); + + printThrows(e); + } - printThrows(e); writer.println(";"); } return this;