Files
kotlin-fork/compiler/testData/codegen/box/jvm8/javaDefaults/samOnInterfaceWithDefaultMethod.kt
T
Alexander Udalov 7b5544ebd3 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.
2020-11-18 18:43:43 +01:00

34 lines
477 B
Kotlin
Vendored

// TARGET_BACKEND: JVM
// FILE: JavaCall.java
class JavaCall {
String call(Test test) {
return test.call();
}
}
// FILE: Test.java
interface Test {
String call();
default String test() {
return "K";
}
static String testStatic() {
return "K";
}
}
// FILE: sam.kt
// JVM_TARGET: 1.8
fun box(): String {
val lambda = { "X" }
if (JavaCall().call(lambda) != "X") return "Fail"
return JavaCall().call {"OK"}
}