JS: Fix capturing class construction function for lambdas inside inline functions with reified type parameters (KT-13522).
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
package foo
|
||||
|
||||
inline fun <reified T : Any> foo(): () -> JsClass<T> {
|
||||
val T = 1
|
||||
return { jsClass<T>() }
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
check(jsClass<A>(), foo<A>()())
|
||||
check(jsClass<B>(), foo<B>()())
|
||||
check(jsClass<O>(), foo<O>()())
|
||||
check(jsClass<E>(), foo<E>()())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package foo
|
||||
|
||||
import kotlin.reflect.KClass
|
||||
|
||||
inline fun <reified T : Any> foo(b: Boolean = false): () -> KClass<T> {
|
||||
if (b) {
|
||||
val T = 1
|
||||
}
|
||||
return { T::class }
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
check(A::class, foo<A>()())
|
||||
check(B::class, foo<B>()())
|
||||
check(O::class, foo<O>()())
|
||||
check(E::class, foo<E>()())
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user