diff options
author | Stephan Herrmann | 2021-08-29 10:13:16 +0000 |
---|---|---|
committer | Stephan Herrmann | 2021-08-29 10:19:16 +0000 |
commit | f48007c46a0ef1207c5f5953efeefb93816a92ae (patch) | |
tree | 3eddcb93c00656d9f093fe557f0255e04bfd4612 | |
parent | 5456affca7dbaf9d8e5edaaa6ba27fee7c2a7763 (diff) | |
download | org.eclipse.objectteams-f48007c46a0ef1207c5f5953efeefb93816a92ae.tar.gz org.eclipse.objectteams-f48007c46a0ef1207c5f5953efeefb93816a92ae.tar.xz org.eclipse.objectteams-f48007c46a0ef1207c5f5953efeefb93816a92ae.zip |
update jdt.core to S4_21_0_RC1
2 files changed, 96 insertions, 1 deletions
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ModuleCompilationTests.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ModuleCompilationTests.java index 64afbce68..b66db7417 100644 --- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ModuleCompilationTests.java +++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ModuleCompilationTests.java @@ -5539,4 +5539,99 @@ public void testBug521362_emptyFile() { "", true); } + public void testBug574097() { + Util.flushDirectoryContent(new File(OUTPUT_DIR)); + String outDir = OUTPUT_DIR + File.separator + "bin"; + String srcDir = OUTPUT_DIR + File.separator + "src"; + File modDir = new File(OUTPUT_DIR + File.separator + "mod"); + String moduleLoc = srcDir + File.separator + "mod.one"; + List<String> files = new ArrayList<>(); + writeFileCollecting(files, moduleLoc, "module-info.java", + "module mod.one { \n" + + " exports p;\n" + + " requires transitive java.compiler;\n" + + "}"); + writeFileCollecting(files, moduleLoc + File.separator + "p", "TestProcessor.java", + "package p;\n" + + "import java.util.Set;\n" + + "import javax.annotation.processing.AbstractProcessor;\n" + + "import javax.annotation.processing.RoundEnvironment;\n" + + "import javax.lang.model.element.TypeElement;\n" + + "public class TestProcessor extends AbstractProcessor {\n" + + " @Override\n" + + " public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {\n" + + " return false;\n" + + " }\n" + + "}"); + + StringBuilder buffer = new StringBuilder(); + buffer.append("-d " + outDir ) + .append(" -9 ") + .append(" --module-path \"") + .append(Util.getJavaClassLibsAsString()) + .append("\" ") + .append(" --module-source-path " + "\"" + srcDir + "\""); + for (String fileName : files) + buffer.append(" \"").append(fileName).append("\""); + + runConformTest(new String[]{}, + buffer.toString(), + "", + "", + false); + String jarName = modDir + File.separator + "mod.one.jar"; + try { + Util.zip(new File(outDir + File.separator + "mod.one"), + jarName); + } catch (IOException e) { + e.printStackTrace(); + } + if (!modDir.exists()) { + if (!modDir.mkdirs()) { + fail("Coult not create folder " + modDir); + } + } + Util.flushDirectoryContent(new File(srcDir)); + files = new ArrayList<>(); + moduleLoc = srcDir + File.separator + "mod.two"; + writeFileCollecting(files, moduleLoc, "module-info.java", + "module mod.two { \n" + + " exports q;\n" + + " requires java.base;\n" + + " requires mod.one;\n" + + "}"); + writeFileCollecting(files, moduleLoc + File.separator + "q", "A.java", + "package q;\n" + + "public class A {\n" + + " p.TestProcessor prc = null;\n" + + "}"); + buffer = new StringBuilder(); + buffer.append("-d " + outDir ) + .append(" -9 ") + .append(" --module-path \"") + .append(Util.getJavaClassLibsAsString()) + .append("\" ") + .append(" --module-source-path " + "\"" + srcDir + "\"") + .append(" --processor-module-path " + "\"" + jarName + "\""); + for (String name : files) + buffer.append(" \"").append(name).append("\""); + + runNegativeTest(new String[]{}, + buffer.toString(), + "", + "----------\n" + + "1. ERROR in ---OUTPUT_DIR_PLACEHOLDER---/src/mod.two/module-info.java (at line 4)\n" + + " requires mod.one;\n" + + " ^^^^^^^\n" + + "mod.one cannot be resolved to a module\n" + + "----------\n" + + "----------\n" + + "2. ERROR in ---OUTPUT_DIR_PLACEHOLDER---/src/mod.two/q/A.java (at line 3)\n" + + " p.TestProcessor prc = null;\n" + + " ^\n" + + "p cannot be resolved to a type\n" + + "----------\n" + + "2 problems (2 errors)\n", + false); + } } diff --git a/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java b/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java index 658b004f0..152e8ba53 100644 --- a/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java +++ b/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java @@ -2261,7 +2261,7 @@ public void configure(String[] argv) { mode = INSIDE_SYSTEM; continue; } - if (currentArg.equals("--module-path") || currentArg.equals("-p") || currentArg.equals("--processor-module-path")) { //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + if (currentArg.equals("--module-path") || currentArg.equals("-p")) { //$NON-NLS-1$ //$NON-NLS-2$ mode = INSIDE_MODULEPATH_start; continue; } |