langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java
changeset 39915 5d1e0740e709
parent 39366 8bf5fe72ca88
child 39917 c51a8950f278
equal deleted inserted replaced
39914:cebd92646695 39915:5d1e0740e709
   755             }
   755             }
   756         }
   756         }
   757 
   757 
   758         @Override
   758         @Override
   759         public void visitRequires(JCRequires tree) {
   759         public void visitRequires(JCRequires tree) {
   760             msym.directives = msym.directives.prepend(tree.directive);
   760             if (tree.directive != null) {
       
   761                 msym.directives = msym.directives.prepend(tree.directive);
       
   762             }
   761         }
   763         }
   762 
   764 
   763         @Override
   765         @Override
   764         public void visitUses(JCUses tree) {
   766         public void visitUses(JCUses tree) {
   765             Type st = attr.attribType(tree.qualid, env, syms.objectType);
   767             Type st = attr.attribType(tree.qualid, env, syms.objectType);
  1212         }
  1214         }
  1213     }
  1215     }
  1214 
  1216 
  1215     private void checkCyclicDependencies(JCModuleDecl mod) {
  1217     private void checkCyclicDependencies(JCModuleDecl mod) {
  1216         for (JCDirective d : mod.directives) {
  1218         for (JCDirective d : mod.directives) {
  1217             if (!d.hasTag(Tag.REQUIRES))
  1219             JCRequires rd;
       
  1220             if (!d.hasTag(Tag.REQUIRES) || (rd = (JCRequires) d).directive == null)
  1218                 continue;
  1221                 continue;
  1219             JCRequires rd = (JCRequires) d;
       
  1220             Set<ModuleSymbol> nonSyntheticDeps = new HashSet<>();
  1222             Set<ModuleSymbol> nonSyntheticDeps = new HashSet<>();
  1221             List<ModuleSymbol> queue = List.of(rd.directive.module);
  1223             List<ModuleSymbol> queue = List.of(rd.directive.module);
  1222             while (queue.nonEmpty()) {
  1224             while (queue.nonEmpty()) {
  1223                 ModuleSymbol current = queue.head;
  1225                 ModuleSymbol current = queue.head;
  1224                 queue = queue.tail;
  1226                 queue = queue.tail;