< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java

Print this page
rev 50958 : [mq]: 8207032


1535         }
1536 
1537         return requiresTransitive;
1538     }
1539 
1540     private void initVisiblePackages(ModuleSymbol msym, Collection<ModuleSymbol> readable) {
1541         initAddExports();
1542 
1543         msym.visiblePackages = new LinkedHashMap<>();
1544         msym.readModules = new HashSet<>(readable);
1545 
1546         Map<Name, ModuleSymbol> seen = new HashMap<>();
1547 
1548         for (ModuleSymbol rm : readable) {
1549             if (rm == syms.unnamedModule)
1550                 continue;
1551             addVisiblePackages(msym, seen, rm, rm.exports);
1552         }
1553 
1554         addExports.forEach((exportsFrom, exports) -> {

1555             addVisiblePackages(msym, seen, exportsFrom, exports);

1556         });
1557     }
1558 
1559     private void addVisiblePackages(ModuleSymbol msym,
1560                                     Map<Name, ModuleSymbol> seenPackages,
1561                                     ModuleSymbol exportsFrom,
1562                                     Collection<ExportsDirective> exports) {
1563         for (ExportsDirective d : exports) {
1564             if (d.modules == null || d.modules.contains(msym)) {
1565                 Name packageName = d.packge.fullname;
1566                 ModuleSymbol previousModule = seenPackages.get(packageName);
1567 
1568                 if (previousModule != null && previousModule != exportsFrom) {
1569                     Env<AttrContext> env = typeEnvs.get(msym);
1570                     JavaFileObject origSource = env != null ? log.useSource(env.toplevel.sourcefile)
1571                                                             : null;
1572                     DiagnosticPosition pos = env != null ? env.tree.pos() : null;
1573                     try {
1574                         if (msym.isUnnamed()) {
1575                             log.error(pos, Errors.PackageClashFromRequiresInUnnamed(packageName,




1535         }
1536 
1537         return requiresTransitive;
1538     }
1539 
1540     private void initVisiblePackages(ModuleSymbol msym, Collection<ModuleSymbol> readable) {
1541         initAddExports();
1542 
1543         msym.visiblePackages = new LinkedHashMap<>();
1544         msym.readModules = new HashSet<>(readable);
1545 
1546         Map<Name, ModuleSymbol> seen = new HashMap<>();
1547 
1548         for (ModuleSymbol rm : readable) {
1549             if (rm == syms.unnamedModule)
1550                 continue;
1551             addVisiblePackages(msym, seen, rm, rm.exports);
1552         }
1553 
1554         addExports.forEach((exportsFrom, exports) -> {
1555             if (msym.readModules.contains(exportsFrom)) {
1556                 addVisiblePackages(msym, seen, exportsFrom, exports);
1557             }
1558         });
1559     }
1560 
1561     private void addVisiblePackages(ModuleSymbol msym,
1562                                     Map<Name, ModuleSymbol> seenPackages,
1563                                     ModuleSymbol exportsFrom,
1564                                     Collection<ExportsDirective> exports) {
1565         for (ExportsDirective d : exports) {
1566             if (d.modules == null || d.modules.contains(msym)) {
1567                 Name packageName = d.packge.fullname;
1568                 ModuleSymbol previousModule = seenPackages.get(packageName);
1569 
1570                 if (previousModule != null && previousModule != exportsFrom) {
1571                     Env<AttrContext> env = typeEnvs.get(msym);
1572                     JavaFileObject origSource = env != null ? log.useSource(env.toplevel.sourcefile)
1573                                                             : null;
1574                     DiagnosticPosition pos = env != null ? env.tree.pos() : null;
1575                     try {
1576                         if (msym.isUnnamed()) {
1577                             log.error(pos, Errors.PackageClashFromRequiresInUnnamed(packageName,


< prev index next >