< prev index next >
src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java
Print this page
rev 50632 : [mq]: defaultroots
@@ -79,10 +79,11 @@
import com.sun.tools.javac.code.Symtab;
import com.sun.tools.javac.code.Type;
import com.sun.tools.javac.code.Types;
import com.sun.tools.javac.jvm.ClassWriter;
import com.sun.tools.javac.jvm.JNIWriter;
+import com.sun.tools.javac.jvm.Target;
import com.sun.tools.javac.main.Option;
import com.sun.tools.javac.resources.CompilerProperties.Errors;
import com.sun.tools.javac.resources.CompilerProperties.Warnings;
import com.sun.tools.javac.tree.JCTree;
import com.sun.tools.javac.tree.JCTree.JCCompilationUnit;
@@ -142,10 +143,11 @@
private final TypeEnvs typeEnvs;
private final Types types;
private final JavaFileManager fileManager;
private final ModuleFinder moduleFinder;
private final Source source;
+ private final Target target;
private final boolean allowModules;
private final boolean allowAccessIntoSystem;
public final boolean multiModuleMode;
@@ -189,10 +191,11 @@
typeEnvs = TypeEnvs.instance(context);
moduleFinder = ModuleFinder.instance(context);
types = Types.instance(context);
fileManager = context.get(JavaFileManager.class);
source = Source.instance(context);
+ target = Target.instance(context);
allowModules = Feature.MODULES.allowedInSource(source);
Options options = Options.instance(context);
allowAccessIntoSystem = options.isUnset(Option.RELEASE);
lintOptions = options.isUnset(Option.XLINT_CUSTOM, "-" + LintCategory.OPTIONS.option);
@@ -1232,23 +1235,29 @@
(observable == null) ? (moduleFinder.findModule(sym).kind != ERR) : observable.contains(sym);
Predicate<ModuleSymbol> systemModulePred = sym -> (sym.flags() & Flags.SYSTEM_MODULE) != 0;
Set<ModuleSymbol> enabledRoot = new LinkedHashSet<>();
if (rootModules.contains(syms.unnamedModule)) {
- ModuleSymbol javaSE = syms.getModule(java_se);
Predicate<ModuleSymbol> jdkModulePred;
-
+ if (target.allApiModulesAreRoots()) {
+ jdkModulePred = sym -> {
+ sym.complete();
+ return sym.exports.stream().anyMatch(e -> e.modules == null);
+ };
+ } else {
+ ModuleSymbol javaSE = syms.getModule(java_se);
if (javaSE != null && (observable == null || observable.contains(javaSE))) {
jdkModulePred = sym -> {
sym.complete();
return !sym.name.startsWith(java_)
&& sym.exports.stream().anyMatch(e -> e.modules == null);
};
enabledRoot.add(javaSE);
} else {
jdkModulePred = sym -> true;
}
+ }
Predicate<ModuleSymbol> noIncubatorPred = sym -> {
sym.complete();
return !sym.resolutionFlags.contains(ModuleResolutionFlags.DO_NOT_RESOLVE_BY_DEFAULT);
};
< prev index next >