[FIR] Capture type from type parameter upper bound when needed

This commit is contained in:
Dmitriy Novozhilov
2020-09-25 16:00:48 +03:00
parent 393688ad82
commit cc4f72e032
7 changed files with 92 additions and 3 deletions
@@ -0,0 +1,12 @@
// ISSUE: KT-40131
import kotlin.reflect.KClass
val <U> KClass<U>.javaImpl: Class<U>
get() = null!!
val <T : KClass<*>> T.myJava1: Class<*>
get() = <!DEBUG_INFO_EXPRESSION_TYPE("java.lang.Class<out kotlin.Any?>")!>javaImpl<!>
val <E : Any, T : KClass<E>> T.myJava2: Class<E>
get() = <!DEBUG_INFO_EXPRESSION_TYPE("java.lang.Class<E>")!>javaImpl<!>
@@ -0,0 +1,13 @@
FILE: kt40131.kt
public final val <U> R|kotlin/reflect/KClass<U>|.javaImpl: R|java/lang/Class<U>|
public get(): R|java/lang/Class<U>| {
^ Null(null)!!
}
public final val <T : R|kotlin/reflect/KClass<*>|> R|T|.myJava1: R|java/lang/Class<*>|
public get(): R|java/lang/Class<*>| {
^ this@R|/myJava1|.R|/javaImpl|<R|kotlin/Any?|>
}
public final val <E : R|kotlin/Any|, T : R|kotlin/reflect/KClass<E>|> R|T|.myJava2: R|java/lang/Class<E>|
public get(): R|java/lang/Class<E>| {
^ this@R|/myJava2|.R|/javaImpl|<R|E|>
}