1.1 --- a/src/share/classes/com/sun/tools/javac/tree/JCTree.java Tue Oct 23 13:58:56 2012 -0700 1.2 +++ b/src/share/classes/com/sun/tools/javac/tree/JCTree.java Thu Oct 25 11:09:36 2012 -0700 1.3 @@ -81,7 +81,7 @@ 1.4 public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition { 1.5 1.6 /* Tree tag values, identifying kinds of trees */ 1.7 - public enum Tag{ 1.8 + public enum Tag { 1.9 /** For methods that return an invalid tag if a given condition is not met 1.10 */ 1.11 NO_TAG, 1.12 @@ -1912,10 +1912,10 @@ 1.13 * A constant value given literally. 1.14 */ 1.15 public static class JCLiteral extends JCExpression implements LiteralTree { 1.16 - public int typetag; 1.17 + public TypeTag typetag; 1.18 /** value representation */ 1.19 public Object value; 1.20 - protected JCLiteral(int typetag, Object value) { 1.21 + protected JCLiteral(TypeTag typetag, Object value) { 1.22 this.typetag = typetag; 1.23 this.value = value; 1.24 } 1.25 @@ -1923,33 +1923,15 @@ 1.26 public void accept(Visitor v) { v.visitLiteral(this); } 1.27 1.28 public Kind getKind() { 1.29 - switch (typetag) { 1.30 - case TypeTags.INT: 1.31 - return Kind.INT_LITERAL; 1.32 - case TypeTags.LONG: 1.33 - return Kind.LONG_LITERAL; 1.34 - case TypeTags.FLOAT: 1.35 - return Kind.FLOAT_LITERAL; 1.36 - case TypeTags.DOUBLE: 1.37 - return Kind.DOUBLE_LITERAL; 1.38 - case TypeTags.BOOLEAN: 1.39 - return Kind.BOOLEAN_LITERAL; 1.40 - case TypeTags.CHAR: 1.41 - return Kind.CHAR_LITERAL; 1.42 - case TypeTags.CLASS: 1.43 - return Kind.STRING_LITERAL; 1.44 - case TypeTags.BOT: 1.45 - return Kind.NULL_LITERAL; 1.46 - default: 1.47 - throw new AssertionError("unknown literal kind " + this); 1.48 - } 1.49 + return typetag.getKindLiteral(); 1.50 } 1.51 + 1.52 public Object getValue() { 1.53 switch (typetag) { 1.54 - case TypeTags.BOOLEAN: 1.55 + case BOOLEAN: 1.56 int bi = (Integer) value; 1.57 return (bi != 0); 1.58 - case TypeTags.CHAR: 1.59 + case CHAR: 1.60 int ci = (Integer) value; 1.61 char c = (char) ci; 1.62 if (c != ci) 1.63 @@ -1976,12 +1958,12 @@ 1.64 1.65 /** 1.66 * Identifies a basic type. 1.67 - * @see TypeTags 1.68 + * @see TypeTag 1.69 */ 1.70 public static class JCPrimitiveTypeTree extends JCExpression implements PrimitiveTypeTree { 1.71 /** the basic type id */ 1.72 - public int typetag; 1.73 - protected JCPrimitiveTypeTree(int typetag) { 1.74 + public TypeTag typetag; 1.75 + protected JCPrimitiveTypeTree(TypeTag typetag) { 1.76 this.typetag = typetag; 1.77 } 1.78 @Override 1.79 @@ -1989,29 +1971,9 @@ 1.80 1.81 public Kind getKind() { return Kind.PRIMITIVE_TYPE; } 1.82 public TypeKind getPrimitiveTypeKind() { 1.83 - switch (typetag) { 1.84 - case TypeTags.BOOLEAN: 1.85 - return TypeKind.BOOLEAN; 1.86 - case TypeTags.BYTE: 1.87 - return TypeKind.BYTE; 1.88 - case TypeTags.SHORT: 1.89 - return TypeKind.SHORT; 1.90 - case TypeTags.INT: 1.91 - return TypeKind.INT; 1.92 - case TypeTags.LONG: 1.93 - return TypeKind.LONG; 1.94 - case TypeTags.CHAR: 1.95 - return TypeKind.CHAR; 1.96 - case TypeTags.FLOAT: 1.97 - return TypeKind.FLOAT; 1.98 - case TypeTags.DOUBLE: 1.99 - return TypeKind.DOUBLE; 1.100 - case TypeTags.VOID: 1.101 - return TypeKind.VOID; 1.102 - default: 1.103 - throw new AssertionError("unknown primitive type " + this); 1.104 - } 1.105 + return typetag.getPrimitiveTypeKind(); 1.106 } 1.107 + 1.108 @Override 1.109 public <R,D> R accept(TreeVisitor<R,D> v, D d) { 1.110 return v.visitPrimitiveType(this, d); 1.111 @@ -2161,7 +2123,7 @@ 1.112 } 1.113 @Override 1.114 public Tag getTag() { 1.115 - return WILDCARD; 1.116 + return Tag.WILDCARD; 1.117 } 1.118 } 1.119 1.120 @@ -2362,8 +2324,8 @@ 1.121 JCArrayAccess Indexed(JCExpression indexed, JCExpression index); 1.122 JCFieldAccess Select(JCExpression selected, Name selector); 1.123 JCIdent Ident(Name idname); 1.124 - JCLiteral Literal(int tag, Object value); 1.125 - JCPrimitiveTypeTree TypeIdent(int typetag); 1.126 + JCLiteral Literal(TypeTag tag, Object value); 1.127 + JCPrimitiveTypeTree TypeIdent(TypeTag typetag); 1.128 JCArrayTypeTree TypeArray(JCExpression elemtype); 1.129 JCTypeApply TypeApply(JCExpression clazz, List<JCExpression> arguments); 1.130 JCTypeParameter TypeParameter(Name name, List<JCExpression> bounds);