diff -r 4a1c57a1c410 -r c002fdee76fd src/share/classes/com/sun/tools/javac/code/Symbol.java --- a/src/share/classes/com/sun/tools/javac/code/Symbol.java Tue Oct 23 13:58:56 2012 -0700 +++ b/src/share/classes/com/sun/tools/javac/code/Symbol.java Thu Oct 25 11:09:36 2012 -0700 @@ -42,7 +42,9 @@ import com.sun.tools.javac.util.Name; import static com.sun.tools.javac.code.Flags.*; import static com.sun.tools.javac.code.Kinds.*; -import static com.sun.tools.javac.code.TypeTags.*; +import static com.sun.tools.javac.code.TypeTag.CLASS; +import static com.sun.tools.javac.code.TypeTag.FORALL; +import static com.sun.tools.javac.code.TypeTag.TYPEVAR; /** Root class for Java symbols. It contains subclasses * for specific sorts of symbols, such as variables, methods and operators, @@ -161,7 +163,7 @@ if (owner.name == null || owner.name.isEmpty()) { return location(); } - if (owner.type.tag == CLASS) { + if (owner.type.hasTag(CLASS)) { Type ownertype = types.asOuterSuper(site, owner); if (ownertype != null) return ownertype.tsym; } @@ -256,7 +258,7 @@ /** A class is an inner class if it it has an enclosing instance class. */ public boolean isInner() { - return type.getEnclosingType().tag == CLASS; + return type.getEnclosingType().hasTag(CLASS); } /** An inner class has an outer instance if it is not an interface @@ -269,7 +271,7 @@ */ public boolean hasOuterInstance() { return - type.getEnclosingType().tag == CLASS && (flags() & (INTERFACE | NOOUTERTHIS)) == 0; + type.getEnclosingType().hasTag(CLASS) && (flags() & (INTERFACE | NOOUTERTHIS)) == 0; } /** The closest enclosing class of this symbol's declaration. @@ -277,7 +279,7 @@ public ClassSymbol enclClass() { Symbol c = this; while (c != null && - ((c.kind & TYP) == 0 || c.type.tag != CLASS)) { + ((c.kind & TYP) == 0 || !c.type.hasTag(CLASS))) { c = c.owner; } return (ClassSymbol)c; @@ -346,7 +348,7 @@ e = e.next(); } Type superType = types.supertype(clazz.type); - if (superType.tag != TypeTags.CLASS) return false; + if (!superType.hasTag(CLASS)) return false; clazz = (ClassSymbol)superType.tsym; } } @@ -373,7 +375,7 @@ for (Symbol sup = clazz; sup != null && sup != this.owner; sup = types.supertype(sup.type).tsym) { - while (sup.type.tag == TYPEVAR) + while (sup.type.hasTag(TYPEVAR)) sup = sup.type.getUpperBound().tsym; if (sup.type.isErroneous()) return true; // error recovery @@ -520,7 +522,7 @@ if (owner == null) return name; if (((owner.kind != ERR)) && ((owner.kind & (VAR | MTH)) != 0 - || (owner.kind == TYP && owner.type.tag == TYPEVAR) + || (owner.kind == TYP && owner.type.hasTag(TYPEVAR)) )) return name; Name prefix = owner.getQualifiedName(); if (prefix == null || prefix == prefix.table.names.empty) @@ -534,7 +536,7 @@ static public Name formFlatName(Name name, Symbol owner) { if (owner == null || (owner.kind & (VAR | MTH)) != 0 - || (owner.kind == TYP && owner.type.tag == TYPEVAR) + || (owner.kind == TYP && owner.type.hasTag(TYPEVAR)) ) return name; char sep = owner.kind == TYP ? '$' : '.'; Name prefix = owner.flatName(); @@ -553,16 +555,16 @@ if (this == that) return false; if (this.type.tag == that.type.tag) { - if (this.type.tag == CLASS) { + if (this.type.hasTag(CLASS)) { return types.rank(that.type) < types.rank(this.type) || types.rank(that.type) == types.rank(this.type) && that.getQualifiedName().compareTo(this.getQualifiedName()) < 0; - } else if (this.type.tag == TYPEVAR) { + } else if (this.type.hasTag(TYPEVAR)) { return types.isSubtype(this.type, that.type); } } - return this.type.tag == TYPEVAR; + return this.type.hasTag(TYPEVAR); } // For type params; overridden in subclasses. @@ -572,7 +574,7 @@ public java.util.List getEnclosedElements() { List list = List.nil(); - if (kind == TYP && type.tag == TYPEVAR) { + if (kind == TYP && type.hasTag(TYPEVAR)) { return list; } for (Scope.Entry e = members().elems; e != null; e = e.sibling) { @@ -591,7 +593,7 @@ } public R accept(ElementVisitor v, P p) { - Assert.check(type.tag == TYPEVAR); // else override will be invoked + Assert.check(type.hasTag(TYPEVAR)); // else override will be invoked return v.visitTypeParameter(this, p); } @@ -798,13 +800,13 @@ if (this == base) { return true; } else if ((base.flags() & INTERFACE) != 0) { - for (Type t = type; t.tag == CLASS; t = types.supertype(t)) + for (Type t = type; t.hasTag(CLASS); t = types.supertype(t)) for (List is = types.interfaces(t); is.nonEmpty(); is = is.tail) if (is.head.tsym.isSubClass(base, types)) return true; } else { - for (Type t = type; t.tag == CLASS; t = types.supertype(t)) + for (Type t = type; t.hasTag(CLASS); t = types.supertype(t)) if (t.tsym == base) return true; } return false; @@ -1048,7 +1050,7 @@ */ public MethodSymbol(long flags, Name name, Type type, Symbol owner) { super(MTH, flags, name, type, owner); - if (owner.type.tag == TYPEVAR) Assert.error(owner + "." + name); + if (owner.type.hasTag(TYPEVAR)) Assert.error(owner + "." + name); } /** Clone this symbol with new owner. @@ -1074,7 +1076,7 @@ ? owner.name.toString() : name.toString(); if (type != null) { - if (type.tag == FORALL) + if (type.hasTag(FORALL)) s = "<" + ((ForAll)type).getTypeArguments() + ">" + s; s += "(" + type.argtypes((flags() & VARARGS) != 0) + ")"; }