Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Herrmann2021-08-29 10:13:16 +0000
committerStephan Herrmann2021-08-29 10:19:16 +0000
commitf48007c46a0ef1207c5f5953efeefb93816a92ae (patch)
tree3eddcb93c00656d9f093fe557f0255e04bfd4612
parent5456affca7dbaf9d8e5edaaa6ba27fee7c2a7763 (diff)
downloadorg.eclipse.objectteams-f48007c46a0ef1207c5f5953efeefb93816a92ae.tar.gz
org.eclipse.objectteams-f48007c46a0ef1207c5f5953efeefb93816a92ae.tar.xz
org.eclipse.objectteams-f48007c46a0ef1207c5f5953efeefb93816a92ae.zip
update jdt.core to S4_21_0_RC1
-rw-r--r--org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/ModuleCompilationTests.java95
-rw-r--r--org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch/Main.java2
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;
}

Back to the top