langtools/src/share/classes/com/sun/tools/javac/code/Symbol.java
changeset 23810 b92eb80925f0
parent 23396 06e3726c6b3f
child 23814 06ab27895804
--- 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;
+        }
+
     }