< prev index next >
src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java
Print this page
@@ -370,14 +370,23 @@
Location plocn = fileManager.hasLocation(StandardLocation.PATCH_MODULE_PATH) ?
fileManager.getLocationForModule(StandardLocation.PATCH_MODULE_PATH,
tree.sourcefile, getPackageName(tree)) :
null;
- if (msplocn != null) {
if (plocn != null) {
- log.error(tree.pos(), Errors.FilePatchedAndMsp);
+ Name name = names.fromString(fileManager.inferModuleName(plocn));
+ ModuleSymbol msym = moduleFinder.findModule(name);
+ tree.modle = msym;
+ rootModules.add(msym);
+
+ if (msplocn != null) {
+ Name mspname = names.fromString(fileManager.inferModuleName(msplocn));
+ if (name != mspname) {
+ log.error(tree.pos(), Errors.FilePatchedAndMsp(name, mspname));
+ }
}
+ } else if (msplocn != null) {
Name name = names.fromString(fileManager.inferModuleName(msplocn));
ModuleSymbol msym;
JCModuleDecl decl = tree.getModuleDecl();
if (decl != null) {
msym = decl.sym;
@@ -397,15 +406,10 @@
StandardLocation.CLASS_OUTPUT, msym.name.toString());
}
}
tree.modle = msym;
rootModules.add(msym);
- } else if (plocn != null) {
- Name name = names.fromString(fileManager.inferModuleName(plocn));
- ModuleSymbol msym = moduleFinder.findModule(name);
- tree.modle = msym;
- rootModules.add(msym);
} else if (c != null && c.packge().modle == syms.unnamedModule) {
tree.modle = syms.unnamedModule;
} else {
if (tree.getModuleDecl() != null) {
log.error(tree.pos(), Errors.ModuleNotFoundOnModuleSourcePath);
@@ -438,19 +442,20 @@
checkNoAllModulePath();
defaultModule = moduleFinder.findModule(names.fromString(moduleOverride));
if (legacyModuleOverride != null) {
defaultModule.sourceLocation = StandardLocation.SOURCE_PATH;
}
+ defaultModule.patchOutputLocation = StandardLocation.CLASS_OUTPUT;
} else {
// Question: why not do findAllModules and initVisiblePackages here?
// i.e. body of unnamedModuleCompleter
defaultModule.completer = getUnnamedModuleCompleter();
defaultModule.sourceLocation = StandardLocation.SOURCE_PATH;
defaultModule.classLocation = StandardLocation.CLASS_PATH;
}
} else {
- checkSpecifiedModule(trees, moduleOverride, Errors.ModuleInfoWithPatchedModuleClasspath);
+ checkSpecifiedModule(trees, moduleOverride, Errors.ModuleInfoWithPatchedModuleClassoutput);
checkNoAllModulePath();
defaultModule.complete();
// Question: why not do completeModule here?
defaultModule.completer = sym -> completeModule((ModuleSymbol) sym);
defaultModule.sourceLocation = StandardLocation.SOURCE_PATH;
< prev index next >