--- a/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java Fri Apr 04 19:13:53 2014 -0400
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java Tue Apr 08 14:06:11 2014 +0200
@@ -905,6 +905,12 @@
public <R, P> R accept(Symbol.Visitor<R, P> v, P p) {
return v.visitPackageSymbol(this, p);
}
+
+ /**Resets the Symbol into the state good for next round of annotation processing.*/
+ public void reset() {
+ metadata = null;
+ }
+
}
/** A class for class symbols
@@ -1154,6 +1160,26 @@
public <R, P> R accept(Symbol.Visitor<R, P> v, P p) {
return v.visitClassSymbol(this, p);
}
+
+ /**Resets the Symbol into the state good for next round of annotation processing.*/
+ public void reset() {
+ kind = TYP;
+ erasure_field = null;
+ members_field = null;
+ flags_field = 0;
+ if (type instanceof ClassType) {
+ ClassType t = (ClassType)type;
+ t.setEnclosingType(Type.noType);
+ t.rank_field = -1;
+ t.typarams_field = null;
+ t.allparams_field = null;
+ t.supertype_field = null;
+ t.interfaces_field = null;
+ t.all_interfaces_field = null;
+ }
+ metadata = null;
+ }
+
}