< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacProcessingEnvironment.java

Print this page
rev 50958 : imported patch 8189747


1251 
1252         /** Prepare for new round of annotation processing. Cleans trees, resets symbols, and
1253          * asks selected services to prepare to a new round of annotation processing.
1254          */
1255         private void newRound() {
1256             //ensure treesToClean contains all trees, including implicitly parsed ones
1257             for (Env<AttrContext> env : enter.getEnvs()) {
1258                 treesToClean.add(env.toplevel);
1259             }
1260             for (JCCompilationUnit node : treesToClean) {
1261                 treeCleaner.scan(node);
1262             }
1263             chk.newRound();
1264             enter.newRound();
1265             filer.newRound();
1266             messager.newRound();
1267             compiler.newRound();
1268             modules.newRound();
1269             types.newRound();
1270             annotate.newRound();

1271 
1272             boolean foundError = false;
1273 
1274             for (ClassSymbol cs : symtab.getAllClasses()) {
1275                 if (cs.kind == ERR) {
1276                     foundError = true;
1277                     break;
1278                 }
1279             }
1280 
1281             if (foundError) {
1282                 for (ClassSymbol cs : symtab.getAllClasses()) {
1283                     if (cs.classfile != null || cs.kind == ERR) {
1284                         cs.reset();
1285                         if (cs.kind == ERR) {
1286                             cs.type = new ClassType(cs.type.getEnclosingType(), null, cs);
1287                         }
1288                         if (cs.isCompleted()) {
1289                             cs.completer = initialCompleter;
1290                         }




1251 
1252         /** Prepare for new round of annotation processing. Cleans trees, resets symbols, and
1253          * asks selected services to prepare to a new round of annotation processing.
1254          */
1255         private void newRound() {
1256             //ensure treesToClean contains all trees, including implicitly parsed ones
1257             for (Env<AttrContext> env : enter.getEnvs()) {
1258                 treesToClean.add(env.toplevel);
1259             }
1260             for (JCCompilationUnit node : treesToClean) {
1261                 treeCleaner.scan(node);
1262             }
1263             chk.newRound();
1264             enter.newRound();
1265             filer.newRound();
1266             messager.newRound();
1267             compiler.newRound();
1268             modules.newRound();
1269             types.newRound();
1270             annotate.newRound();
1271             elementUtils.newRound();
1272 
1273             boolean foundError = false;
1274 
1275             for (ClassSymbol cs : symtab.getAllClasses()) {
1276                 if (cs.kind == ERR) {
1277                     foundError = true;
1278                     break;
1279                 }
1280             }
1281 
1282             if (foundError) {
1283                 for (ClassSymbol cs : symtab.getAllClasses()) {
1284                     if (cs.classfile != null || cs.kind == ERR) {
1285                         cs.reset();
1286                         if (cs.kind == ERR) {
1287                             cs.type = new ClassType(cs.type.getEnclosingType(), null, cs);
1288                         }
1289                         if (cs.isCompleted()) {
1290                             cs.completer = initialCompleter;
1291                         }


< prev index next >