diff --git a/build.gradle b/build.gradle index 0f861f759f1..77e716e7e99 100644 --- a/build.gradle +++ b/build.gradle @@ -55,21 +55,15 @@ ext { // Keep in sync with check in // framework/src/main/java/org/checkerframework/framework/source/SourceChecker.java . switch (JavaVersion.current()) { - case JavaVersion.VERSION_1_9: - case JavaVersion.VERSION_1_10: - case JavaVersion.VERSION_12: - case JavaVersion.VERSION_19: - case JavaVersion.VERSION_20: - logger.note("The Checker Framework has only been tested with JDK 8, 11, 17, and 18." + - " You are using JDK " + JavaVersion.current().majorVersion + "."); - break; case JavaVersion.VERSION_1_8: case JavaVersion.VERSION_11: case JavaVersion.VERSION_17: case JavaVersion.VERSION_18: break; // Supported versions default: - throw new GradleException("Unexpected Java version found: " + JavaVersion.current().majorVersion); + logger.info("The Checker Framework has only been tested with JDK 8, 11, 17, and 18." + + " You are using JDK " + JavaVersion.current().majorVersion + "."); + break; } task setLocalRepo(type:Exec) { diff --git a/checker/bin-devel/build.sh b/checker/bin-devel/build.sh index 9b082cc8e7b..926bf64422a 100755 --- a/checker/bin-devel/build.sh +++ b/checker/bin-devel/build.sh @@ -12,6 +12,7 @@ echo "CHECKERFRAMEWORK=$CHECKERFRAMEWORK" export SHELLOPTS echo "SHELLOPTS=${SHELLOPTS}" +echo "initial JAVA_HOME=${JAVA_HOME}" if [ "$(uname)" == "Darwin" ] ; then export JAVA_HOME=${JAVA_HOME:-$(/usr/libexec/java_home)} else diff --git a/checker/tests/fenum/UpperBoundsInByteCode.java b/checker/tests/fenum/UpperBoundsInByteCode.java index c1fcc61bb94..207f13a4301 100644 --- a/checker/tests/fenum/UpperBoundsInByteCode.java +++ b/checker/tests/fenum/UpperBoundsInByteCode.java @@ -1,4 +1,4 @@ -// @above-java17-jdk-skip-test TODO: reinstate on JDK 18, false positives may be due to issue #979 +// @above-java17-jdk-skip-test TODO: reinstate, false positives may be due to issue #979 import org.checkerframework.checker.fenum.qual.Fenum; import org.checkerframework.framework.testchecker.lib.UncheckedByteCode; diff --git a/checker/tests/mustcall/CommandResponse.java b/checker/tests/mustcall/CommandResponse.java index acaa66b980a..cc0dad5f9d5 100644 --- a/checker/tests/mustcall/CommandResponse.java +++ b/checker/tests/mustcall/CommandResponse.java @@ -1,6 +1,6 @@ // Based on a false positive in Zookeeper. -// @above-java17-jdk-skip-test TODO: reinstate on JDK 18, false positives may be due to issue #979 +// @above-java17-jdk-skip-test TODO: reinstate, false positives may be due to issue #979 import java.util.Map; diff --git a/checker/tests/nullness/Issue3754.java b/checker/tests/nullness/Issue3754.java index 489d97aa870..3b91fff0aea 100644 --- a/checker/tests/nullness/Issue3754.java +++ b/checker/tests/nullness/Issue3754.java @@ -1,4 +1,4 @@ -// @above-java17-jdk-skip-test TODO: reinstate on JDK 18, false positives may be due to issue #979 +// @above-java17-jdk-skip-test TODO: reinstate, false positives may be due to issue #979 import org.checkerframework.checker.nullness.qual.Nullable; diff --git a/checker/tests/nullness/Iterate.java b/checker/tests/nullness/Iterate.java index ccf6cdb2e88..7cbc6c1f8ba 100644 --- a/checker/tests/nullness/Iterate.java +++ b/checker/tests/nullness/Iterate.java @@ -1,4 +1,4 @@ -// @above-java17-jdk-skip-test TODO: reinstate on JDK 18, false positives may be due to issue #979 +// @above-java17-jdk-skip-test TODO: reinstate, false positives may be due to issue #979 package wildcards; diff --git a/checker/tests/nullness/RawTypesNullness.java b/checker/tests/nullness/RawTypesNullness.java index 4a00c61209a..20991ebb4f2 100644 --- a/checker/tests/nullness/RawTypesNullness.java +++ b/checker/tests/nullness/RawTypesNullness.java @@ -1,4 +1,4 @@ -// @above-java17-jdk-skip-test TODO: reinstate on JDK 18, false negatives may be due to issue #979 +// @above-java17-jdk-skip-test TODO: reinstate, false negatives may be due to issue #979 import org.checkerframework.checker.nullness.qual.Nullable; diff --git a/checker/tests/nullness/java8inference/Issue980.java b/checker/tests/nullness/java8inference/Issue980.java index 5959f802f00..570a3dd1f46 100644 --- a/checker/tests/nullness/java8inference/Issue980.java +++ b/checker/tests/nullness/java8inference/Issue980.java @@ -1,7 +1,7 @@ // Test case that was submitted in Issue 402, but was combined with Issue 979 // https://github.com/typetools/checker-framework/issues/979 -// @above-java17-jdk-skip-test TODO: reinstate on JDK 18, false positives may be due to issue #979 +// @above-java17-jdk-skip-test TODO: reinstate, false positives may be due to issue #979 import java.util.List; import java.util.stream.Collectors; diff --git a/docs/manual/inference.tex b/docs/manual/inference.tex index d52fa92bb0f..79cffd5e4c6 100644 --- a/docs/manual/inference.tex +++ b/docs/manual/inference.tex @@ -238,10 +238,10 @@ \item The project on which inference is run must contain an Ant, Gradle, or Maven buildfile that compiles the project. \item At least one of the \verb|JAVA_HOME|, - \verb|JAVA8_HOME|, \verb|JAVA11_HOME|, or \verb|JAVA17_HOME| + \verb|JAVA8_HOME|, \verb|JAVA11_HOME|, \verb|JAVA17_HOME|, or \verb|JAVA18_HOME| environment variables must be set. \item If set, the \verb|JAVA_HOME| environment variable must point to a - Java 8, 11, or 18 JDK. + Java 8, 11, 17, or 18 JDK. \item If set, the \verb|JAVA8_HOME| environment variable must point to a Java 8 JDK. \item If set, the \verb|JAVA11_HOME| environment variable must point to a Java 11 JDK. \item If set, the \verb|JAVA17_HOME| environment variable must point to a Java 17 JDK. diff --git a/docs/manual/introduction.tex b/docs/manual/introduction.tex index ccf2e7025c1..7829dc76c71 100644 --- a/docs/manual/introduction.tex +++ b/docs/manual/introduction.tex @@ -824,7 +824,7 @@ Here are some standard javac command-line options that you may find useful. -Many of them contain the word ``processor'', because in javac jargon, a +Many of them contain ``processor'' or ``proc'', because in javac jargon, a checker is an ``annotation processor''. \begin{itemize} @@ -854,10 +854,6 @@ the compiler or a checker. \end{itemize} -The Checker Framework does not support \<-source 1.7> or earlier. You must -supply \<-source 1.8> or later, or no \<-source> command-line argument, -when running \. - \subsectionAndLabel{Checker auto-discovery}{checker-auto-discovery} diff --git a/docs/manual/troubleshooting.tex b/docs/manual/troubleshooting.tex index f4d10f9d604..ba89f8cb107 100644 --- a/docs/manual/troubleshooting.tex +++ b/docs/manual/troubleshooting.tex @@ -711,7 +711,7 @@ \item[Ubuntu] Run the following commands, which should be the same as those in \, where \emph{XX} - is a JDK version such as 8, 11, 17, 18, etc.: + is a JDK version such as 8, 11, 17, etc.: (This list should be the same as in \; if your build fails diff --git a/framework/src/main/java/org/checkerframework/framework/source/SourceChecker.java b/framework/src/main/java/org/checkerframework/framework/source/SourceChecker.java index 2c15afac7c8..e66e9113086 100644 --- a/framework/src/main/java/org/checkerframework/framework/source/SourceChecker.java +++ b/framework/src/main/java/org/checkerframework/framework/source/SourceChecker.java @@ -550,8 +550,8 @@ public final synchronized void init(ProcessingEnvironment env) { if (jreVersion != 8 && jreVersion != 11 && jreVersion != 17 && jreVersion != 18) { message( (hasOption("permitUnsupportedJdkVersion") ? Kind.NOTE : Kind.WARNING), - "The Checker Framework is tested with JDK 8, 11, 17, and 18. You are using version" - + " %d.", + "The Checker Framework is tested with JDK 8, 11, 17, and 18." + + " You are using version %d.", jreVersion); } diff --git a/framework/src/main/java/org/checkerframework/framework/util/JavaParserUtil.java b/framework/src/main/java/org/checkerframework/framework/util/JavaParserUtil.java index f3af5671d58..55ca54185f8 100644 --- a/framework/src/main/java/org/checkerframework/framework/util/JavaParserUtil.java +++ b/framework/src/main/java/org/checkerframework/framework/util/JavaParserUtil.java @@ -358,7 +358,8 @@ public static ParserConfiguration.LanguageLevel getCurrentSourceVersion( case "RELEASE_17": currentSourceVersion = ParserConfiguration.LanguageLevel.JAVA_17; break; - // JavaParser does not yet have a constant for JDK 18. The default is JAVA_17. + // As of 2022-09-27, JavaParser's ParserConfiguration.LanguageLevel does not yet have a + // constant for JDK 18. // case "RELEASE_18": // currentSourceVersion = ParserConfiguration.LanguageLevel.JAVA_18; // break; diff --git a/framework/tests/all-systems/LubRawTypes.java b/framework/tests/all-systems/LubRawTypes.java index b8230377019..d7483160a4c 100644 --- a/framework/tests/all-systems/LubRawTypes.java +++ b/framework/tests/all-systems/LubRawTypes.java @@ -1,4 +1,4 @@ -// @above-java17-jdk-skip-test TODO: reinstate on JDK 18, false positives may be due to issue #979 +// @above-java17-jdk-skip-test TODO: reinstate, false positives may be due to issue #979 @SuppressWarnings("unchecked") public class LubRawTypes { diff --git a/framework/tests/all-systems/java8inference/Issue1397.java b/framework/tests/all-systems/java8inference/Issue1397.java index 929a467b438..74d879396fd 100644 --- a/framework/tests/all-systems/java8inference/Issue1397.java +++ b/framework/tests/all-systems/java8inference/Issue1397.java @@ -1,7 +1,7 @@ // Test case for Issue 1397. // https://github.com/typetools/checker-framework/issues/1397 -// @above-java17-jdk-skip-test TODO: reinstate on JDK 18, false positives may be due to issue #979 +// @above-java17-jdk-skip-test TODO: reinstate, false positives may be due to issue #979 public class Issue1397 { diff --git a/framework/tests/all-systems/java8inference/Issue1407.java b/framework/tests/all-systems/java8inference/Issue1407.java index 276c1435a3b..676235a515e 100644 --- a/framework/tests/all-systems/java8inference/Issue1407.java +++ b/framework/tests/all-systems/java8inference/Issue1407.java @@ -1,7 +1,7 @@ // Test case for Issue 1407. // https://github.com/typetools/checker-framework/issues/1407 -// @above-java17-jdk-skip-test TODO: reinstate on JDK 18, false positives may be due to issue #979 +// @above-java17-jdk-skip-test TODO: reinstate, false positives may be due to issue #979 abstract class Issue1407 { abstract T foo(T p1, T p2);