[IR Actualizer] Fix fake-override generation in actual A -> common B -> actual C hierarchy

...  where C defines a member x and A overrides the member x

#KT-61166 Fixed
This commit is contained in:
Kirill Rakhman
2023-08-29 16:32:32 +02:00
committed by Space Team
parent 293474ee50
commit ac102dedac
10 changed files with 155 additions and 72 deletions
+26
View File
@@ -0,0 +1,26 @@
// LANGUAGE: +MultiPlatformProjects
// TARGET_BACKEND: JVM_IR
// IGNORE_BACKEND_K1: ANY
// ISSUE: KT-60854
// WITH_STDLIB
// FULL_JDK
// MODULE: common
// FILE: common.kt
expect object A
abstract class B : C()
expect abstract class C()
// MODULE: intermediate()()(common)
// FILE: intermediate.kt
actual object A : B() {
override val x: String get() = "OK"
}
actual abstract class C {
abstract val x: String
}
// MODULE: platform()()(intermediate)
// FILE: platform.kt
fun box(): String = A.x