langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java
changeset 41254 08f8dbf7741e
parent 40768 8b6a878d8773
child 41931 d7c9720c4223
equal deleted inserted replaced
41253:7a2422a5b481 41254:08f8dbf7741e
   290         if (isModuleInfo && isModuleDecl) {
   290         if (isModuleInfo && isModuleDecl) {
   291             JCModuleDecl decl = (JCModuleDecl) toplevel.defs.head;
   291             JCModuleDecl decl = (JCModuleDecl) toplevel.defs.head;
   292             Name name = TreeInfo.fullName(decl.qualId);
   292             Name name = TreeInfo.fullName(decl.qualId);
   293             ModuleSymbol sym;
   293             ModuleSymbol sym;
   294             if (c != null) {
   294             if (c != null) {
   295                sym = (ModuleSymbol) c.owner;
   295                 sym = (ModuleSymbol) c.owner;
   296                if (sym.name == null) {
   296                 Assert.checkNonNull(sym.name);
   297                    //ModuleFinder.findSingleModule creates a stub of a ModuleSymbol without a name,
   297                 Name treeName = TreeInfo.fullName(decl.qualId);
   298                    //fill the name here after the module-info.java has been parsed
   298                 if (sym.name != treeName) {
   299                    //also enter the ModuleSymbol among modules:
   299                     log.error(decl.pos(), Errors.ModuleNameMismatch(name, sym.name));
   300                    syms.enterModule(sym, name);
   300                 }
   301                } else {
       
   302                    // TODO: validate name
       
   303                }
       
   304             } else {
   301             } else {
   305                 sym = syms.enterModule(name);
   302                 sym = syms.enterModule(name);
   306                 if (sym.module_info.sourcefile != null && sym.module_info.sourcefile != toplevel.sourcefile) {
   303                 if (sym.module_info.sourcefile != null && sym.module_info.sourcefile != toplevel.sourcefile) {
   307                     log.error(decl.pos(), Errors.DuplicateModule(sym));
   304                     log.error(decl.pos(), Errors.DuplicateModule(sym));
   308                     return;
   305                     return;
  1004     private Completer getUnnamedModuleCompleter() {
  1001     private Completer getUnnamedModuleCompleter() {
  1005         moduleFinder.findAllModules();
  1002         moduleFinder.findAllModules();
  1006         return new Symbol.Completer() {
  1003         return new Symbol.Completer() {
  1007             @Override
  1004             @Override
  1008             public void complete(Symbol sym) throws CompletionFailure {
  1005             public void complete(Symbol sym) throws CompletionFailure {
       
  1006                 if (inInitModules) {
       
  1007                     sym.completer = this;
       
  1008                     return ;
       
  1009                 }
  1009                 ModuleSymbol msym = (ModuleSymbol) sym;
  1010                 ModuleSymbol msym = (ModuleSymbol) sym;
  1010                 Set<ModuleSymbol> allModules = allModules();
  1011                 Set<ModuleSymbol> allModules = allModules();
  1011                 for (ModuleSymbol m : allModules) {
  1012                 for (ModuleSymbol m : allModules) {
  1012                     m.complete();
  1013                     m.complete();
  1013                 }
  1014                 }