Don't do full type parameters erasure in PromisedValue::materializeAt
The only case when erasure matters in a context of materialization of `PromisedValue` is when the type is a type parameter which upper bound is an inline class. Since `PromisedValue::materializeAt` is a hot spot and `eraseTypeParameters` is an expensive operation, we should not do type erasure in other cases.
This commit is contained in:
committed by
Space Team
parent
5456ef3ad8
commit
8f2825506a
+9
@@ -0,0 +1,9 @@
|
||||
// TARGET_BACKEND: JVM_IR
|
||||
// WITH_STDLIB
|
||||
|
||||
@JvmInline
|
||||
value class Z(val value: String)
|
||||
|
||||
fun <T : U, U : Z> foo(t: T) = t.value
|
||||
|
||||
fun box() = foo(Z("OK"))
|
||||
Reference in New Issue
Block a user