You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by em...@apache.org on 2022/11/23 14:30:09 UTC
[groovy] branch master updated: `CompilerConfiguration#setTargetBytecode` for JDK20+
This is an automated email from the ASF dual-hosted git repository.
emilles pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/groovy.git
The following commit(s) were added to refs/heads/master by this push:
new 1ecf93436b `CompilerConfiguration#setTargetBytecode` for JDK20+
1ecf93436b is described below
commit 1ecf93436bfd18899817bf9964f74c93f80fd076
Author: Eric Milles <er...@thomsonreuters.com>
AuthorDate: Wed Nov 23 08:22:13 2022 -0600
`CompilerConfiguration#setTargetBytecode` for JDK20+
---
.../java/org/codehaus/groovy/control/CompilerConfiguration.java | 8 +++-----
.../org/codehaus/groovy/control/CompilerConfigurationTest.java | 4 ++--
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
index d2f8a9dfa4..7c0932af37 100644
--- a/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
+++ b/src/main/java/org/codehaus/groovy/control/CompilerConfiguration.java
@@ -98,7 +98,6 @@ public class CompilerConfiguration {
public static final String JDK18 = "18";
/** This (<code>"19"</code>) is the value for targetBytecode to compile for a JDK 19. */
public static final String JDK19 = "19";
-
/** This (<code>"20"</code>) is the value for targetBytecode to compile for a JDK 20. */
public static final String JDK20 = "20";
@@ -465,10 +464,9 @@ public class CompilerConfiguration {
handleOptimizationOption(RUNTIME_GROOVYDOC, getSystemPropertySafe("groovy.attach.runtime.groovydoc"));
handleOptimizationOption(PARALLEL_PARSE, getSystemPropertySafe("groovy.parallel.parse", "true"));
- boolean memStubEnabled = Boolean.parseBoolean(getSystemPropertySafe("groovy.mem.stub", "false"));
- if (memStubEnabled) {
+ if (getBooleanSafe("groovy.mem.stub")) {
jointCompilationOptions = new HashMap<>(2);
- jointCompilationOptions.put(MEM_STUB, memStubEnabled);
+ jointCompilationOptions.put(MEM_STUB, Boolean.TRUE);
}
}
@@ -1067,7 +1065,7 @@ public class CompilerConfiguration {
}
private void setTargetBytecodeIfValid(final String version) {
- int index = Arrays.binarySearch(ALLOWED_JDKS, !version.startsWith("1") ? "1." + version : version);
+ int index = Arrays.binarySearch(ALLOWED_JDKS, !version.startsWith("1") && !version.startsWith("2") ? "1." + version : version);
if (index >= 0) {
targetBytecode = ALLOWED_JDKS[index];
} else {
diff --git a/src/test/org/codehaus/groovy/control/CompilerConfigurationTest.java b/src/test/org/codehaus/groovy/control/CompilerConfigurationTest.java
index 25a5cc0fb3..1fbaada0e5 100644
--- a/src/test/org/codehaus/groovy/control/CompilerConfigurationTest.java
+++ b/src/test/org/codehaus/groovy/control/CompilerConfigurationTest.java
@@ -297,8 +297,8 @@ public final class CompilerConfigurationTest {
@Test // GROOVY-10278
public void testTargetVersion() {
CompilerConfiguration config = new CompilerConfiguration();
- String[] inputs = {"1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "5" , "6" , "7" , "8" , "9" , "9.0", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"};
- String[] expect = {"11" , "11" , "11" , "11" , "11" , "11" , "11" , "11", "11", "11", "11", "11", "11" , "11", "11", "12", "13", "14", "15", "16", "17", "18", "19"};
+ String[] inputs = {"1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "5" , "6" , "7" , "8" , "9" , "9.0", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21"};
+ String[] expect = {"11" , "11" , "11" , "11" , "11" , "11" , "11" , "11", "11", "11", "11", "11", "11" , "11", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "20"};
assertArrayEquals(expect, Arrays.stream(inputs).map(v -> { config.setTargetBytecode(v); return config.getTargetBytecode(); }).toArray(String[]::new));
}
}