Don't lost type parameters for members of inline classes in the bytecode

#KT-33157 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2019-08-06 15:13:29 +03:00
parent a874f4f5c3
commit 80acc56c10
8 changed files with 76 additions and 0 deletions
@@ -0,0 +1,27 @@
inline class SomeClass(val v: Int) {
companion object {
fun <T> comp(s: SomeClass, t: T): T? = null
}
fun <T> getT(): T? = null
fun <T, K> getTK(t: T): K? = null
val <K> K.propK: K? get() = null
}
// method: SomeClass::getT-impl
// jvm signature: (I)Ljava/lang/Object;
// generic signature: <T:Ljava/lang/Object;>(I)TT;
// method: SomeClass::getTK-impl
// jvm signature: (ILjava/lang/Object;)Ljava/lang/Object;
// generic signature: <T:Ljava/lang/Object;K:Ljava/lang/Object;>(ITT;)TK;
// method: SomeClass::getPropK-impl
// jvm signature: (ILjava/lang/Object;)Ljava/lang/Object;
// generic signature: <K:Ljava/lang/Object;>(ITK;)TK;
// method: SomeClass$Companion::comp-Uh6wWds
// jvm signature: (ILjava/lang/Object;)Ljava/lang/Object;
// generic signature: <T:Ljava/lang/Object;>(ITT;)TT;