Use -source/target 1.6 for Java sources in codegen tests
In cases when the test has the JVM_TARGET directive, use that one for Java compilation as well. Otherwise, for box tests, the corresponding test in `JvmTarget6OnJvm6` (module `:compiler:tests-different-jdk`) will fail. However, it affects all codegen tests, so fix a bunch of them which use Java 8+ features to explicitly compile with JVM target 1.8. In particular, this obsoletes the SKIP_JDK6 directive in those tests because "JVM_TARGET: 1.8" also skips it for JDK 6. The check for IS_SOURCE_6_STILL_SUPPORTED is needed in order to still be able to run tests in the project while only having a single JDK > 11 installed, and having all of the env vars JDK_16, JDK_17, JDK_18 pointing to that JDK.
This commit is contained in:
+3
-3
@@ -1,6 +1,5 @@
|
||||
// !LANGUAGE: +StrictJavaNullabilityAssertions
|
||||
// TARGET_BACKEND: JVM
|
||||
// SKIP_JDK6
|
||||
// See KT-8135
|
||||
// We could generate runtime assertion on call site for 'generic<NOT_NULL_TYPE>()' below.
|
||||
|
||||
@@ -24,11 +23,12 @@ fun <T> generic(j: J) = j.nullT<T>()
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class J {
|
||||
public <T> @NotNull T nullT() {
|
||||
@NotNull
|
||||
public <T> T nullT() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public void test() {
|
||||
TestKt.withAssertion(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user