Files
kotlin-fork/compiler/testData/writeSignature/inlineClasses/genericMethodInsideClass.kt
T
Ilmir Usmanov c62093f54c IC mangling: Change mangling rules
1. Use 'x' for each parameter, which is not an inline class, every
possible clash is handled by signature rather than name. This change
makes more API changes binary-compatible. So, the changes are in line
with the vision of inline classes are value classes, like primitives.

2. Take return type into account when mangling a function if the return
type is inline class. Otherwise, boxing bridge will not be generated,
which leads to CCE at runtime.
2020-11-19 17:39:24 +01:00

27 lines
824 B
Kotlin
Vendored

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-aew-wRw
// jvm signature: (ILjava/lang/Object;)Ljava/lang/Object;
// generic signature: <T:Ljava/lang/Object;>(ITT;)TT;