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:
Alexander Udalov
2020-11-16 18:53:10 +01:00
parent 7b4e0b2f5d
commit 7b5544ebd3
17 changed files with 50 additions and 35 deletions
@@ -1,5 +1,4 @@
// TARGET_BACKEND: JVM
// SKIP_JDK6
// FILE: I.java
interface I {
default String ifun() { return "fail"; }
@@ -14,6 +13,7 @@ public class Z {
public class Zz extends Z implements I {}
// FILE: multipleImplFromJava.kt
// JVM_TARGET: 1.8
class Cc : Zz()