< prev index next >

test/tools/javac/modules/EdgeCases.java

Print this page
rev 3340 : 8154283: Check for clash between package and class not working when package in a different module
Summary: Looking for any visible package when checking for package-class clash
Reviewed-by: TBD

*** 21,30 **** --- 21,31 ---- * questions. */ /* * @test + * @bug 8154283 * @summary tests for multi-module mode compilation * @library /tools/lib * @modules * jdk.compiler/com.sun.tools.javac.api * jdk.compiler/com.sun.tools.javac.code
*** 55,65 **** import com.sun.tools.javac.code.Symbol.ModuleSymbol; import toolbox.JarTask; import toolbox.JavacTask; import toolbox.Task; - import toolbox.ToolBox; public class EdgeCases extends ModuleTestBase { public static void main(String... args) throws Exception { new EdgeCases().runTests(); --- 56,65 ----
*** 267,272 **** --- 267,307 ---- .run() .writeAll(); } + @Test + void testClasspackageClash(Path base) throws Exception { + Path src = base.resolve("src"); + Path src_m1 = src.resolve("m1"); + tb.writeJavaFiles(src_m1, + "module m1 { exports test.m1; }", + "package test.m1;\n" + + "public class Test {}\n"); + Path src_m2 = src.resolve("m2"); + tb.writeJavaFiles(src_m2, + "module m2 { requires m1; }", + "package test;\n" + + "public class m1 {}\n"); + Path classes = base.resolve("classes"); + tb.createDirectories(classes); + + List<String> log = new JavacTask(tb) + .options("-modulesourcepath", src.toString(), + "-XDrawDiagnostics") + .outdir(classes) + .files(findJavaFiles(src)) + .run(Task.Expect.FAIL) + .writeAll() + .getOutputLines(Task.OutputKind.DIRECT); + + List<String> expected = Arrays.asList( + "m1.java:2:8: compiler.err.clash.with.pkg.of.same.name: kindname.class, test.m1", + "1 error" + ); + + if (!expected.equals(log)) { + throw new IllegalStateException(log.toString()); + } + } + }
< prev index next >