提交 f345a405 编写于 作者: J jlahoda

8189765: Improve error reporting for compiling against package not visible due to modules

Summary: When looking in other modules for an undefined Symbol, also look into the unnamed module.
Reviewed-by: mcimadamore
上级 451e0c40
......@@ -2120,6 +2120,7 @@ public class Resolve {
Set<ModuleSymbol> recoverableModules = new HashSet<>(syms.getAllModules());
recoverableModules.add(syms.unnamedModule);
recoverableModules.remove(env.toplevel.modle);
for (ModuleSymbol ms : recoverableModules) {
......
......@@ -252,7 +252,7 @@ public class CompileModulePatchTest extends ModuleTestBase {
.getOutputLines(Task.OutputKind.DIRECT);
List<String> expectedOut = Arrays.asList(
"Extra.java:1:76: compiler.err.doesnt.exist: p",
"Extra.java:1:75: compiler.err.package.not.visible: p, (compiler.misc.not.def.access.does.not.read.unnamed: p, java.compiler)",
"1 error"
);
......
......@@ -23,7 +23,7 @@
/*
* @test
* @bug 8169197 8172668 8173117 8175007
* @bug 8169197 8172668 8173117 8175007 8189765
* @summary Check convenient errors are produced for inaccessible classes.
* @library /tools/lib
* @modules jdk.compiler/com.sun.tools.javac.api
......@@ -199,7 +199,7 @@ public class ConvenientAccessErrorsTest extends ModuleTestBase {
throw new Exception("expected output not found; actual: " + log);
}
// @Test
@Test
public void testInaccessibleUnnamedModule(Path base) throws Exception {
Path jar = prepareTestJar(base, "package api; class Api { public static class Foo {} }");
......@@ -224,8 +224,8 @@ public class ConvenientAccessErrorsTest extends ModuleTestBase {
.getOutputLines(Task.OutputKind.DIRECT);
List<String> expected = Arrays.asList(
"Test.java:1:38: compiler.err.not.def.access.package.cant.access: api.Api, api, (compiler.misc.not.def.access.does.not.read.unnamed: api, m1x)",
"Test.java:1:51: compiler.err.not.def.access.package.cant.access: api.Api, api, (compiler.misc.not.def.access.does.not.read.unnamed: api, m1x)",
"Test.java:1:35: compiler.err.package.not.visible: api, (compiler.misc.not.def.access.does.not.read.unnamed: api, m1x)",
"Test.java:1:48: compiler.err.package.not.visible: api, (compiler.misc.not.def.access.does.not.read.unnamed: api, m1x)",
"2 errors");
if (!expected.equals(log))
......
......@@ -77,7 +77,7 @@ public class ModulesAndClassPathTest extends ModuleTestBase {
.writeAll()
.getOutputLines(Task.OutputKind.DIRECT);
List<String> expected = Arrays.asList("Impl.java:1:38: compiler.err.doesnt.exist: api",
List<String> expected = Arrays.asList("Impl.java:1:35: compiler.err.package.not.visible: api, (compiler.misc.not.def.access.does.not.read.unnamed: api, m)",
"1 error");
if (!expected.equals(modLog)) {
......@@ -129,7 +129,7 @@ public class ModulesAndClassPathTest extends ModuleTestBase {
.writeAll()
.getOutputLines(Task.OutputKind.DIRECT);
List<String> expected = Arrays.asList("Impl.java:1:38: compiler.err.doesnt.exist: api",
List<String> expected = Arrays.asList("Impl.java:1:35: compiler.err.package.not.visible: api, (compiler.misc.not.def.access.does.not.read.unnamed: api, m)",
"1 error");
if (!expected.equals(modLog)) {
......@@ -170,7 +170,7 @@ public class ModulesAndClassPathTest extends ModuleTestBase {
.writeAll()
.getOutputLines(Task.OutputKind.DIRECT);
List<String> expected = Arrays.asList("Impl.java:1:38: compiler.err.doesnt.exist: api",
List<String> expected = Arrays.asList("Impl.java:1:35: compiler.err.package.not.visible: api, (compiler.misc.not.def.access.does.not.read.unnamed: api, m)",
"1 error");
if (!expected.equals(modLog)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册