Files
kotlin-fork/compiler/testData/codegen/box/functions/functionNtoStringGeneric.kt
T
pyos 6e143a2656 JVM_IR: collect free type parameters when serializing FIR metadata
The "free" in "createFreeFakeLambdaDescriptor" and such refers to the
fact that there are no references to type parameters from outside the
current declaration. This is necessary because at the point where the
metadata is written, the type parameters may not even be in scope (e.g.
local delegated properties are serialized at class level, but may refer
to function-scope type parameters).
2020-09-22 09:35:50 +03:00

29 lines
742 B
Kotlin
Vendored

// IGNORE_BACKEND: JS_IR
// IGNORE_BACKEND: JS_IR_ES6
// TODO: muted automatically, investigate should it be ran for JS or not
// IGNORE_BACKEND: JS, NATIVE
// WITH_REFLECT
import kotlin.test.assertEquals
fun <T> bar(): String {
return { t: T -> t }.toString()
}
class Baz<T, V> {
fun <V : T> baz(v: V): String {
return (fun(t: List<T>): V = v).toString()
}
}
open class Foo<T, U : List<T>>(val lambda: (T) -> U)
class Bar<T> : Foo<T, List<T>>({ listOf(it) })
fun box(): String {
assertEquals("(T) -> T", bar<String>())
assertEquals("(kotlin.collections.List<T>) -> V", Baz<String, Int>().baz<String>(""))
assertEquals("(T) -> kotlin.collections.List<T>", Bar<Int>().lambda.toString())
return "OK"
}