Put reification markers came from super object signature
#KT-44770 Fixed #KT-30696 Open
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// NO_CHECK_LAMBDA_INLINING
|
||||
// WITH_RUNTIME
|
||||
// IGNORE_BACKEND: JVM
|
||||
// IGNORE_BACKEND: JVM, JVM_IR
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// IGNORE_BACKEND_MULTI_MODULE: JVM, JVM_IR, JVM_MULTI_MODULE_OLD_AGAINST_IR, JVM_MULTI_MODULE_IR_AGAINST_OLD
|
||||
// FILE: 1.kt
|
||||
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// FULL_JDK
|
||||
// WITH_RUNTIME
|
||||
// IGNORE_BACKEND: ANDROID
|
||||
// FILE: 1.kt
|
||||
|
||||
package test
|
||||
import java.lang.reflect.*
|
||||
|
||||
class OK
|
||||
|
||||
interface S<A>
|
||||
|
||||
inline fun <reified T : Any> test(): String {
|
||||
return (object : S<T> {
|
||||
|
||||
}::class.java.genericInterfaces[0] as ParameterizedType).actualTypeArguments[0].getTypeName()
|
||||
|
||||
// FILE: 2.kt
|
||||
import test.*
|
||||
|
||||
fun box():String {
|
||||
val test = test<OK>()
|
||||
return if (test == OK::class.qualifiedName) "OK" else "fail: $test"
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// FULL_JDK
|
||||
// WITH_RUNTIME
|
||||
// IGNORE_BACKEND: ANDROID
|
||||
// FILE: 1.kt
|
||||
|
||||
package test
|
||||
import java.lang.reflect.*
|
||||
|
||||
class OK
|
||||
|
||||
interface S<A>
|
||||
|
||||
inline fun <reified T : Any> test(): String {
|
||||
return ((object : S<S<T>> {
|
||||
|
||||
}::class.java.genericInterfaces[0] as ParameterizedType).actualTypeArguments[0] as ParameterizedType).actualTypeArguments[0].getTypeName()
|
||||
|
||||
// FILE: 2.kt
|
||||
import test.*
|
||||
|
||||
fun box():String {
|
||||
val test = test<OK>()
|
||||
return if (test == OK::class.qualifiedName) "OK" else "fail: $test"
|
||||
}
|
||||
Reference in New Issue
Block a user