--- a/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java Thu Apr 06 17:01:05 2017 +0000
+++ b/langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java Fri Apr 07 08:08:26 2017 +0000
@@ -1240,7 +1240,7 @@
case ALL_SYSTEM:
modules = new HashSet<>(syms.getAllModules())
.stream()
- .filter(systemModulePred.and(observablePred).and(noIncubatorPred));
+ .filter(systemModulePred.and(observablePred));
break;
case ALL_MODULE_PATH:
modules = new HashSet<>(syms.getAllModules())
@@ -1265,6 +1265,15 @@
result.add(syms.unnamedModule);
+ boolean hasAutomatic = result.stream().anyMatch(IS_AUTOMATIC);
+
+ if (hasAutomatic) {
+ syms.getAllModules()
+ .stream()
+ .filter(IS_AUTOMATIC)
+ .forEach(result::add);
+ }
+
String incubatingModules = result.stream()
.filter(msym -> msym.resolutionFlags.contains(ModuleResolutionFlags.WARN_INCUBATING))
.map(msym -> msym.name.toString())
@@ -1282,6 +1291,9 @@
rootModules.forEach(m -> m.version = version);
}
}
+ //where:
+ private static final Predicate<ModuleSymbol> IS_AUTOMATIC =
+ m -> (m.flags_field & Flags.AUTOMATIC_MODULE) != 0;
public boolean isInModuleGraph(ModuleSymbol msym) {
return allModules == null || allModules.contains(msym);