From e94bf546f3bdb37dbc442804d3819c83bd4f69c5 Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Thu, 7 Jan 2010 22:53:06 +0100 Subject: Fixing javac's PrettyPrinter's screwup on enum members with bodies or parameters. Note that JDK7 fixed this themselves though they kept the silly comments. --- .../lombok/delombok/PrettyCommentsPrinter.java | 24 +++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/delombok/lombok/delombok/PrettyCommentsPrinter.java b/src/delombok/lombok/delombok/PrettyCommentsPrinter.java index 1d04bb5f..a7c79f46 100644 --- a/src/delombok/lombok/delombok/PrettyCommentsPrinter.java +++ b/src/delombok/lombok/delombok/PrettyCommentsPrinter.java @@ -521,6 +521,22 @@ public class PrettyCommentsPrinter extends JCTree.Visitor { print("}"); } + public void printEnumMember(JCVariableDecl tree) throws IOException { + print(tree.name); + if (tree.init instanceof JCNewClass) { + JCNewClass constructor = (JCNewClass) tree.init; + if (constructor.args != null && constructor.args.nonEmpty()) { + print("("); + printExprs(constructor.args); + print(")"); + } + if (constructor.def != null && constructor.def.defs != null) { + print(" "); + printBlock(constructor.def.defs, constructor.def); + } + } + } + /** Is the given tree an enumerator definition? */ boolean isEnumerator(JCTree t) { return getTag(t) == JCTree.VARDEF && (((JCVariableDecl) t).mods.flags & ENUM) != 0; @@ -693,13 +709,7 @@ public class PrettyCommentsPrinter extends JCTree.Visitor { } printDocComment(tree); if ((tree.mods.flags & ENUM) != 0) { - print("/*public static final*/ "); - print(tree.name); - if (tree.init != null) { - print(" /* = "); - printExpr(tree.init); - print(" */"); - } + printEnumMember(tree); } else { printExpr(tree.mods); if ((tree.mods.flags & VARARGS) != 0) { -- cgit