[IR] Fix name clash between properties with the same fqn
Promote ABI version
This commit is contained in:
+1
-2
@@ -203,8 +203,7 @@ abstract class KotlinManglerImpl: KotlinMangler {
|
||||
|
||||
val parentDeclaration = (parent as? IrSimpleFunction)?.correspondingPropertySymbol?.owner ?: parent
|
||||
val containingDeclarationPart = when (parentDeclaration) {
|
||||
is IrDeclarationParent -> parentDeclaration.fqNameUnique.asString()
|
||||
is IrProperty -> "${parentDeclaration.parent.fqNameUnique}.${parentDeclaration.name}"
|
||||
is IrDeclaration -> parentDeclaration.uniqSymbolName()
|
||||
else -> error("Unexpected type parameter parent")
|
||||
}
|
||||
return "ktypeparam:$containingDeclarationPart$name@$index"
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
// FILE: common.kt
|
||||
|
||||
class C<T>(var t: T)
|
||||
class G<T>(var t: T)
|
||||
|
||||
var <T> C<T>.live: T
|
||||
get() {
|
||||
@@ -12,16 +13,25 @@ var <T> C<T>.live: T
|
||||
t = value
|
||||
}
|
||||
|
||||
var <T> G<T>.live: T
|
||||
get() {
|
||||
return t
|
||||
}
|
||||
set(value) {
|
||||
t = value
|
||||
}
|
||||
|
||||
// MODULE: main(lib)
|
||||
// FILE: main.kt
|
||||
import kotlin.reflect.KMutableProperty0
|
||||
|
||||
fun qux(text: KMutableProperty0<String>): String {
|
||||
text.set("OK")
|
||||
fun qux(text: KMutableProperty0<String>, s: String): String {
|
||||
text.set(s)
|
||||
return text.get()
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val c = C("FAIL")
|
||||
return qux(c::live)
|
||||
val c = C("FAIL_C")
|
||||
val g = G("FAIL_G")
|
||||
return qux(c::live, "O") + qux(g::live, "K")
|
||||
}
|
||||
@@ -22,7 +22,7 @@ fun String.parseKonanAbiVersion(): KotlinAbiVersion {
|
||||
|
||||
data class KotlinAbiVersion(val version: Int) {
|
||||
companion object {
|
||||
val CURRENT = KotlinAbiVersion(12)
|
||||
val CURRENT = KotlinAbiVersion(13)
|
||||
}
|
||||
override fun toString() = "$version"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user