[K2, MPP] Fix actualization of fake overrides (fixes a set of bugs in coroutines / ktor)

Split MissingFakeOverridesAdder on FakeOverridesActualizer and ActualFakeOverridesAdder

^KT-57984 Fixed
^KT-58003 Fixed
^KT-58124 Fixed
^KT-57833 Fixed
^KT-58153 Fixed
This commit is contained in:
Ivan Kochurkin
2023-04-11 21:41:36 +02:00
committed by Space Team
parent 58f8e25bfe
commit 432c781ff7
39 changed files with 1581 additions and 182 deletions
@@ -0,0 +1,18 @@
// FIR_IDENTICAL
// ISSUE: KT-58153
// MODULE: m1-common
// FILE: common.kt
expect open class LockFreeLinkedListNode()
class NodeList: LockFreeLinkedListNode() {
override fun toString(): String = ""
}
// MODULE: m2-jvm()()(m1-common)
// FILE: platform.kt
actual open class LockFreeLinkedListNode {
override fun toString(): String = ""
}
@@ -0,0 +1,38 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +MultiPlatformProjects
// MODULE: common
// TARGET_PLATFORM: Common
// FILE: common.kt
expect open class C1()
expect interface I1
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED{JVM}!>open class A : C1(), I1<!>
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED{JVM}!>open class B : I1, C1()<!>
expect abstract class C2()
expect interface I2
// TODO: KT-58829
<!MANY_IMPL_MEMBER_NOT_IMPLEMENTED{JVM}!>class C : C2(), I2<!>
// MODULE: jvm()()(common)
// TARGET_PLATFORM: JVM
// FILE: main.kt
actual open class C1 {
fun f() {}
}
actual interface I1 {
fun f() {}
}
actual abstract class C2 actual constructor() {
fun g() {}
}
actual interface I2 {
fun g()
}
@@ -0,0 +1,38 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +MultiPlatformProjects
// MODULE: common
// TARGET_PLATFORM: Common
// FILE: common.kt
expect open class C1()
expect interface I1
open <!MANY_IMPL_MEMBER_NOT_IMPLEMENTED{JVM}!>class A<!> : C1(), I1
open <!MANY_IMPL_MEMBER_NOT_IMPLEMENTED{JVM}!>class B<!> : I1, C1()
expect abstract class C2()
expect interface I2
// TODO: KT-58829
class C : C2(), I2
// MODULE: jvm()()(common)
// TARGET_PLATFORM: JVM
// FILE: main.kt
actual open class C1 {
fun f() {}
}
actual interface I1 {
fun f() {}
}
actual abstract class C2 actual constructor() {
fun g() {}
}
actual interface I2 {
fun g()
}
@@ -0,0 +1,34 @@
// FIR_IDENTICAL
// ISSUE: KT-57833
// MODULE: m1-common
// FILE: common.kt
interface ByteChannel : ByteReadChannel, ByteWriteChannel
expect interface ByteReadChannel {
val isClosedForWrite: Boolean
fun f()
}
expect interface ByteWriteChannel {
val isClosedForWrite: Boolean
fun f()
}
// MODULE: m2-jvm()()(m1-common)
// FILE: platform.kt
actual interface ByteReadChannel {
actual val isClosedForWrite: Boolean
actual fun f()
}
actual interface ByteWriteChannel {
actual val isClosedForWrite: Boolean
actual fun f()
}