JVM: enable -Xlambdas=class for some backend tests

These tests are checking the specifics of the class-generated lambdas.
This commit is contained in:
Alexander Udalov
2023-05-03 11:48:41 +02:00
committed by Space Team
parent 834ba397ad
commit d757847ed6
16 changed files with 32 additions and 3 deletions
@@ -1,3 +1,5 @@
// LAMBDAS: CLASS
data class A(val x: String, val y: Int)
fun foo(a: A, block: (A) -> String): String = block(a)
@@ -1,3 +1,5 @@
// LAMBDAS: CLASS
public fun <T> Iterable<T>.myforEach(operation: (T) -> Unit) : Unit {
for (element in this) operation(element)
}
@@ -1,3 +1,5 @@
// LAMBDAS: CLASS
fun foo() {
fun bar() : (Int) -> Unit {
return {
@@ -1,3 +1,5 @@
// LAMBDAS: CLASS
fun foo() {
var a = {
@@ -1,3 +1,5 @@
// LAMBDAS: CLASS
operator fun (() -> String).getValue(thisRef: Any?, property: Any?) = this()
fun foo() {
@@ -1,3 +1,5 @@
// LAMBDAS: CLASS
data class A(val x: Double = 1.0, val y: String = "", val z: Char = '0')
fun foo(a: A, block: (A, String, Int) -> String): String = block(a, "", 1)
@@ -1,3 +1,4 @@
$TESTDATA_DIR$/syntheticAccessorForPropertiesSignatureClash.kt
-d
$TEMP_DIR$
-Xlambdas=class
@@ -1,3 +1,4 @@
$TESTDATA_DIR$/syntheticAccessorPropertyAndFunSignatureClash.kt
-d
$TEMP_DIR$
-Xlambdas=class
@@ -3,6 +3,7 @@
// IGNORE_BACKEND: ANDROID
// JVM_TARGET: 1.8
// WITH_STDLIB
// LAMBDAS: CLASS
interface Z {
private fun privateFun() = { "OK" }
+2
View File
@@ -1,3 +1,5 @@
// LAMBDAS: CLASS
class Foo {
fun foo() = { }
}
@@ -1,3 +1,4 @@
// LAMBDAS: CLASS
// IGNORE_BACKEND_K2: JVM_IR
// TARGET_BACKEND: JVM
// FILE: Base.java
@@ -1,3 +1,5 @@
// LAMBDAS: CLASS
class MyList<T> {
private fun noSignature(): T? = null
@@ -9,7 +9,6 @@ import org.jetbrains.kotlin.checkers.ENABLE_JVM_PREVIEW
import org.jetbrains.kotlin.checkers.parseLanguageVersionSettings
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.config.JvmTarget.Companion.fromString
import org.jetbrains.kotlin.test.testFramework.KtUsefulTestCase
import org.jetbrains.kotlin.test.util.KtTestUtil
import java.io.File
@@ -147,7 +146,7 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase()
}
val targetString = directives["JVM_TARGET"]
if (targetString != null) {
val jvmTarget = fromString(targetString)
val jvmTarget = JvmTarget.fromString(targetString)
?: error("Unknown target: $targetString")
configuration.put(JVMConfigurationKeys.JVM_TARGET, jvmTarget)
}
@@ -173,6 +172,13 @@ abstract class KotlinBaseTest<F : KotlinBaseTest.TestFile> : KtUsefulTestCase()
assert(explicitLanguageVersionSettings == null) { "Should not specify !LANGUAGE directive twice" }
explicitLanguageVersionSettings = fileLanguageVersionSettings
}
val lambdasString = directives["LAMBDAS"]
if (lambdasString != null) {
val lambdas = JvmClosureGenerationScheme.fromString(lambdasString)
?: error("Unknown lambdas mode: $lambdasString")
configuration.put(JVMConfigurationKeys.LAMBDAS, lambdas)
}
}
if (explicitLanguageVersionSettings != null) {
configuration.languageVersionSettings = explicitLanguageVersionSettings
@@ -1,4 +1,5 @@
// WITH_STDLIB
// LAMBDAS: CLASS
@file:JvmName("TestKt")
package test
@@ -1,4 +1,5 @@
// WITH_STDLIB
// LAMBDAS: CLASS
@file:JvmName("TestKt")
package test
@@ -21,4 +22,4 @@ fun box() = parcelTest { parcel ->
parcelableCreator<Test>().createFromParcel(parcel)
assert(test.callback() == 1)
}
}
@@ -1,5 +1,6 @@
// See KT-44891, https://issuetracker.google.com/180193969
// WITH_STDLIB
// LAMBDAS: CLASS
@file:JvmName("TestKt")
package test