1.1 --- a/src/share/classes/com/sun/tools/javac/tree/Pretty.java Sat Nov 05 00:02:33 2011 -0700 1.2 +++ b/src/share/classes/com/sun/tools/javac/tree/Pretty.java Tue Nov 08 11:51:05 2011 -0800 1.3 @@ -36,6 +36,8 @@ 1.4 import com.sun.tools.javac.tree.JCTree.*; 1.5 1.6 import static com.sun.tools.javac.code.Flags.*; 1.7 +import static com.sun.tools.javac.code.Flags.ANNOTATION; 1.8 +import static com.sun.tools.javac.tree.JCTree.Tag.*; 1.9 1.10 /** Prints out a tree as an indented Java source program. 1.11 * 1.12 @@ -310,7 +312,7 @@ 1.13 1.14 /** Is the given tree an enumerator definition? */ 1.15 boolean isEnumerator(JCTree t) { 1.16 - return t.getTag() == JCTree.VARDEF && (((JCVariableDecl) t).mods.flags & ENUM) != 0; 1.17 + return t.hasTag(VARDEF) && (((JCVariableDecl) t).mods.flags & ENUM) != 0; 1.18 } 1.19 1.20 /** Print unit consisting of package clause and import statements in toplevel, 1.21 @@ -331,9 +333,9 @@ 1.22 } 1.23 boolean firstImport = true; 1.24 for (List<JCTree> l = tree.defs; 1.25 - l.nonEmpty() && (cdef == null || l.head.getTag() == JCTree.IMPORT); 1.26 + l.nonEmpty() && (cdef == null || l.head.hasTag(IMPORT)); 1.27 l = l.tail) { 1.28 - if (l.head.getTag() == JCTree.IMPORT) { 1.29 + if (l.head.hasTag(IMPORT)) { 1.30 JCImport imp = (JCImport)l.head; 1.31 Name name = TreeInfo.name(imp.qualid); 1.32 if (name == name.table.names.asterisk || 1.33 @@ -484,7 +486,7 @@ 1.34 print("/*public static final*/ "); 1.35 print(tree.name); 1.36 if (tree.init != null) { 1.37 - if (sourceOutput && tree.init.getTag() == JCTree.NEWCLASS) { 1.38 + if (sourceOutput && tree.init.hasTag(NEWCLASS)) { 1.39 print(" /*enum*/ "); 1.40 JCNewClass init = (JCNewClass) tree.init; 1.41 if (init.args != null && init.args.nonEmpty()) { 1.42 @@ -545,7 +547,7 @@ 1.43 printStat(tree.body); 1.44 align(); 1.45 print(" while "); 1.46 - if (tree.cond.getTag() == JCTree.PARENS) { 1.47 + if (tree.cond.hasTag(PARENS)) { 1.48 printExpr(tree.cond); 1.49 } else { 1.50 print("("); 1.51 @@ -561,7 +563,7 @@ 1.52 public void visitWhileLoop(JCWhileLoop tree) { 1.53 try { 1.54 print("while "); 1.55 - if (tree.cond.getTag() == JCTree.PARENS) { 1.56 + if (tree.cond.hasTag(PARENS)) { 1.57 printExpr(tree.cond); 1.58 } else { 1.59 print("("); 1.60 @@ -579,7 +581,7 @@ 1.61 try { 1.62 print("for ("); 1.63 if (tree.init.nonEmpty()) { 1.64 - if (tree.init.head.getTag() == JCTree.VARDEF) { 1.65 + if (tree.init.head.hasTag(VARDEF)) { 1.66 printExpr(tree.init.head); 1.67 for (List<JCStatement> l = tree.init.tail; l.nonEmpty(); l = l.tail) { 1.68 JCVariableDecl vdef = (JCVariableDecl)l.head; 1.69 @@ -626,7 +628,7 @@ 1.70 public void visitSwitch(JCSwitch tree) { 1.71 try { 1.72 print("switch "); 1.73 - if (tree.selector.getTag() == JCTree.PARENS) { 1.74 + if (tree.selector.hasTag(PARENS)) { 1.75 printExpr(tree.selector); 1.76 } else { 1.77 print("("); 1.78 @@ -665,7 +667,7 @@ 1.79 public void visitSynchronized(JCSynchronized tree) { 1.80 try { 1.81 print("synchronized "); 1.82 - if (tree.lock.getTag() == JCTree.PARENS) { 1.83 + if (tree.lock.hasTag(PARENS)) { 1.84 printExpr(tree.lock); 1.85 } else { 1.86 print("("); 1.87 @@ -736,7 +738,7 @@ 1.88 public void visitIf(JCIf tree) { 1.89 try { 1.90 print("if "); 1.91 - if (tree.cond.getTag() == JCTree.PARENS) { 1.92 + if (tree.cond.hasTag(PARENS)) { 1.93 printExpr(tree.cond); 1.94 } else { 1.95 print("("); 1.96 @@ -823,7 +825,7 @@ 1.97 public void visitApply(JCMethodInvocation tree) { 1.98 try { 1.99 if (!tree.typeargs.isEmpty()) { 1.100 - if (tree.meth.getTag() == JCTree.SELECT) { 1.101 + if (tree.meth.hasTag(SELECT)) { 1.102 JCFieldAccess left = (JCFieldAccess)tree.meth; 1.103 printExpr(left.selected); 1.104 print(".<"); 1.105 @@ -882,7 +884,7 @@ 1.106 if (tree.elemtype != null) { 1.107 print("new "); 1.108 JCTree elem = tree.elemtype; 1.109 - if (elem.getTag() == JCTree.TYPEARRAY) 1.110 + if (elem.hasTag(TYPEARRAY)) 1.111 printBaseElementType((JCArrayTypeTree) elem); 1.112 else 1.113 printExpr(elem); 1.114 @@ -927,36 +929,36 @@ 1.115 } 1.116 } 1.117 1.118 - public String operatorName(int tag) { 1.119 + public String operatorName(JCTree.Tag tag) { 1.120 switch(tag) { 1.121 - case JCTree.POS: return "+"; 1.122 - case JCTree.NEG: return "-"; 1.123 - case JCTree.NOT: return "!"; 1.124 - case JCTree.COMPL: return "~"; 1.125 - case JCTree.PREINC: return "++"; 1.126 - case JCTree.PREDEC: return "--"; 1.127 - case JCTree.POSTINC: return "++"; 1.128 - case JCTree.POSTDEC: return "--"; 1.129 - case JCTree.NULLCHK: return "<*nullchk*>"; 1.130 - case JCTree.OR: return "||"; 1.131 - case JCTree.AND: return "&&"; 1.132 - case JCTree.EQ: return "=="; 1.133 - case JCTree.NE: return "!="; 1.134 - case JCTree.LT: return "<"; 1.135 - case JCTree.GT: return ">"; 1.136 - case JCTree.LE: return "<="; 1.137 - case JCTree.GE: return ">="; 1.138 - case JCTree.BITOR: return "|"; 1.139 - case JCTree.BITXOR: return "^"; 1.140 - case JCTree.BITAND: return "&"; 1.141 - case JCTree.SL: return "<<"; 1.142 - case JCTree.SR: return ">>"; 1.143 - case JCTree.USR: return ">>>"; 1.144 - case JCTree.PLUS: return "+"; 1.145 - case JCTree.MINUS: return "-"; 1.146 - case JCTree.MUL: return "*"; 1.147 - case JCTree.DIV: return "/"; 1.148 - case JCTree.MOD: return "%"; 1.149 + case POS: return "+"; 1.150 + case NEG: return "-"; 1.151 + case NOT: return "!"; 1.152 + case COMPL: return "~"; 1.153 + case PREINC: return "++"; 1.154 + case PREDEC: return "--"; 1.155 + case POSTINC: return "++"; 1.156 + case POSTDEC: return "--"; 1.157 + case NULLCHK: return "<*nullchk*>"; 1.158 + case OR: return "||"; 1.159 + case AND: return "&&"; 1.160 + case EQ: return "=="; 1.161 + case NE: return "!="; 1.162 + case LT: return "<"; 1.163 + case GT: return ">"; 1.164 + case LE: return "<="; 1.165 + case GE: return ">="; 1.166 + case BITOR: return "|"; 1.167 + case BITXOR: return "^"; 1.168 + case BITAND: return "&"; 1.169 + case SL: return "<<"; 1.170 + case SR: return ">>"; 1.171 + case USR: return ">>>"; 1.172 + case PLUS: return "+"; 1.173 + case MINUS: return "-"; 1.174 + case MUL: return "*"; 1.175 + case DIV: return "/"; 1.176 + case MOD: return "%"; 1.177 default: throw new Error(); 1.178 } 1.179 } 1.180 @@ -965,7 +967,7 @@ 1.181 try { 1.182 open(prec, TreeInfo.assignopPrec); 1.183 printExpr(tree.lhs, TreeInfo.assignopPrec + 1); 1.184 - print(" " + operatorName(tree.getTag() - JCTree.ASGOffset) + "= "); 1.185 + print(" " + operatorName(tree.getTag().noAssignOp()) + "= "); 1.186 printExpr(tree.rhs, TreeInfo.assignopPrec); 1.187 close(prec, TreeInfo.assignopPrec); 1.188 } catch (IOException e) { 1.189 @@ -978,7 +980,7 @@ 1.190 int ownprec = TreeInfo.opPrec(tree.getTag()); 1.191 String opname = operatorName(tree.getTag()); 1.192 open(prec, ownprec); 1.193 - if (tree.getTag() <= JCTree.PREDEC) { 1.194 + if (!tree.getTag().isPostUnaryOp()) { 1.195 print(opname); 1.196 printExpr(tree.arg, ownprec); 1.197 } else { 1.198 @@ -1153,7 +1155,7 @@ 1.199 while (true) { 1.200 elem = tree.elemtype; 1.201 print("[]"); 1.202 - if (elem.getTag() != JCTree.TYPEARRAY) break; 1.203 + if (!elem.hasTag(TYPEARRAY)) break; 1.204 tree = (JCArrayTypeTree) elem; 1.205 } 1.206 }