blob: 9a3cf57bb88696bf03c19c75bc54c4452a9cfb7b [file]
// RUN_PIPELINE_TILL: FRONTEND
// LAMBDAS: INDY
// WITH_STDLIB
// LANGUAGE: +ForbidJvmSerializableLambdaOnInlinedFunctionLiterals
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]
inline fun inlineArg(x: () -> Unit) = Unit
inline fun crossInlineArg(crossinline x: () -> Unit) = Unit
<!NOTHING_TO_INLINE!>inline<!> fun noInlineArg(noinline x: () -> Unit) = Unit
fun bad5() {
inlineArg <!JVM_SERIALIZABLE_LAMBDA_ON_INLINED_FUNCTION_LITERALS_ERROR!>@JvmSerializableLambda<!> { }
crossInlineArg <!JVM_SERIALIZABLE_LAMBDA_ON_INLINED_FUNCTION_LITERALS_ERROR!>@JvmSerializableLambda<!> { }
noInlineArg @JvmSerializableLambda { }
}
fun bad6() {
inlineArg (<!JVM_SERIALIZABLE_LAMBDA_ON_INLINED_FUNCTION_LITERALS_ERROR!>@JvmSerializableLambda<!> fun () {})
crossInlineArg (<!JVM_SERIALIZABLE_LAMBDA_ON_INLINED_FUNCTION_LITERALS_ERROR!>@JvmSerializableLambda<!> fun () {})
noInlineArg (@JvmSerializableLambda fun () {})
}
/* GENERATED_FIR_TAGS: anonymousFunction, anonymousObjectExpression, callableReference, crossinline, functionDeclaration,
functionalType, inline, integerLiteral, lambdaLiteral, noinline, propertyDeclaration */