langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java
changeset 42841 1768507dae6b
parent 42827 36468b5fa7f4
child 43138 680d378b9d64
equal deleted inserted replaced
42840:dfe1a03d4db4 42841:1768507dae6b
    60 import com.sun.tools.javac.code.Directive.OpensFlag;
    60 import com.sun.tools.javac.code.Directive.OpensFlag;
    61 import com.sun.tools.javac.code.Directive.RequiresDirective;
    61 import com.sun.tools.javac.code.Directive.RequiresDirective;
    62 import com.sun.tools.javac.code.Directive.RequiresFlag;
    62 import com.sun.tools.javac.code.Directive.RequiresFlag;
    63 import com.sun.tools.javac.code.Directive.UsesDirective;
    63 import com.sun.tools.javac.code.Directive.UsesDirective;
    64 import com.sun.tools.javac.code.Flags;
    64 import com.sun.tools.javac.code.Flags;
    65 import com.sun.tools.javac.code.Kinds;
       
    66 import com.sun.tools.javac.code.Lint.LintCategory;
    65 import com.sun.tools.javac.code.Lint.LintCategory;
    67 import com.sun.tools.javac.code.ModuleFinder;
    66 import com.sun.tools.javac.code.ModuleFinder;
    68 import com.sun.tools.javac.code.Source;
    67 import com.sun.tools.javac.code.Source;
    69 import com.sun.tools.javac.code.Symbol;
    68 import com.sun.tools.javac.code.Symbol;
    70 import com.sun.tools.javac.code.Symbol.ClassSymbol;
    69 import com.sun.tools.javac.code.Symbol.ClassSymbol;
   110 
   109 
   111 import static com.sun.tools.javac.code.Flags.ABSTRACT;
   110 import static com.sun.tools.javac.code.Flags.ABSTRACT;
   112 import static com.sun.tools.javac.code.Flags.ENUM;
   111 import static com.sun.tools.javac.code.Flags.ENUM;
   113 import static com.sun.tools.javac.code.Flags.PUBLIC;
   112 import static com.sun.tools.javac.code.Flags.PUBLIC;
   114 import static com.sun.tools.javac.code.Flags.UNATTRIBUTED;
   113 import static com.sun.tools.javac.code.Flags.UNATTRIBUTED;
       
   114 import static com.sun.tools.javac.code.Kinds.Kind.ERR;
   115 import static com.sun.tools.javac.code.Kinds.Kind.MDL;
   115 import static com.sun.tools.javac.code.Kinds.Kind.MDL;
   116 import static com.sun.tools.javac.code.Kinds.Kind.MTH;
   116 import static com.sun.tools.javac.code.Kinds.Kind.MTH;
   117 import static com.sun.tools.javac.code.TypeTag.CLASS;
   117 import static com.sun.tools.javac.code.TypeTag.CLASS;
   118 
   118 
   119 /**
   119 /**
   506     private final Completer mainCompleter = new Completer() {
   506     private final Completer mainCompleter = new Completer() {
   507         @Override
   507         @Override
   508         public void complete(Symbol sym) throws CompletionFailure {
   508         public void complete(Symbol sym) throws CompletionFailure {
   509             ModuleSymbol msym = moduleFinder.findModule((ModuleSymbol) sym);
   509             ModuleSymbol msym = moduleFinder.findModule((ModuleSymbol) sym);
   510 
   510 
   511             if (msym.kind == Kinds.Kind.ERR) {
   511             if (msym.kind == ERR) {
   512                 log.error(Errors.ModuleNotFound(msym));
   512                 log.error(Errors.ModuleNotFound(msym));
   513                 //make sure the module is initialized:
   513                 //make sure the module is initialized:
   514                 msym.directives = List.nil();
   514                 msym.directives = List.nil();
   515                 msym.exports = List.nil();
   515                 msym.exports = List.nil();
   516                 msym.provides = List.nil();
   516                 msym.provides = List.nil();
  1071                     }
  1071                     }
  1072                 }
  1072                 }
  1073             }
  1073             }
  1074         }
  1074         }
  1075 
  1075 
  1076         Predicate<ModuleSymbol> observablePred = sym -> observable == null || observable.contains(sym);
  1076         Predicate<ModuleSymbol> observablePred = sym ->
       
  1077              (observable == null) ? (moduleFinder.findModule(sym).kind != ERR) : observable.contains(sym);
  1077         Predicate<ModuleSymbol> systemModulePred = sym -> (sym.flags() & Flags.SYSTEM_MODULE) != 0;
  1078         Predicate<ModuleSymbol> systemModulePred = sym -> (sym.flags() & Flags.SYSTEM_MODULE) != 0;
  1078         Set<ModuleSymbol> enabledRoot = new LinkedHashSet<>();
  1079         Set<ModuleSymbol> enabledRoot = new LinkedHashSet<>();
  1079 
  1080 
  1080         if (rootModules.contains(syms.unnamedModule)) {
  1081         if (rootModules.contains(syms.unnamedModule)) {
  1081             ModuleSymbol javaSE = syms.getModule(java_se);
  1082             ModuleSymbol javaSE = syms.getModule(java_se);