KT-45375 Lightweight lambdas; KT-52817 introduce @JvmSerializableLambda

This commit is contained in:
Pavel Mikhailovskii
2022-07-18 09:20:55 +02:00
parent 1557f919f5
commit 846537b367
33 changed files with 243 additions and 15 deletions
@@ -0,0 +1,17 @@
// LAMBDAS: INDY
// FIR_IDENTICAL
// WITH_STDLIB
import kotlin.jvm.JvmSerializableLambda
fun foo() = fun () {}
val good1 = @JvmSerializableLambda {}
val good2 = @JvmSerializableLambda fun () {}
val good3 = @JvmSerializableLambda fun Any.() {}
val good4 = listOf(@JvmSerializableLambda {})[0]
val bad1 = <!WRONG_ANNOTATION_TARGET!>@JvmSerializableLambda<!> 1
val bad2 = <!WRONG_ANNOTATION_TARGET!>@JvmSerializableLambda<!> object {}
val bad3 = <!WRONG_ANNOTATION_TARGET!>@JvmSerializableLambda<!> ::foo
val bad4 = listOf(<!WRONG_ANNOTATION_TARGET!>@JvmSerializableLambda<!> 1)[0]
@@ -0,0 +1,11 @@
package
public val bad1: kotlin.Int
public val bad2: kotlin.Any
public val bad3: kotlin.reflect.KFunction0<() -> kotlin.Unit>
public val bad4: kotlin.Int
public val good1: () -> kotlin.Unit
public val good2: () -> kotlin.Unit
public val good3: kotlin.Any.() -> kotlin.Unit
public val good4: () -> kotlin.Unit
public fun foo(): () -> kotlin.Unit