[FE] Cover "implicit actualization"/"actual fake-overrides" KT-58544 with regression tests
Review: https://jetbrains.team/p/kt/reviews/11039/timeline
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
// FIR_IDENTICAL
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect class HashMap {
|
||||
val size: Int
|
||||
}
|
||||
|
||||
expect abstract class AbstractMap {
|
||||
val size: Int
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual abstract class AbstractMap() {
|
||||
actual val size: Int = 0
|
||||
}
|
||||
|
||||
actual class HashMap : AbstractMap()
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
// FIR_IDENTICAL
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
interface Map {
|
||||
val size: Int
|
||||
}
|
||||
|
||||
expect class HashMap : Map {
|
||||
override val size: Int
|
||||
}
|
||||
|
||||
expect abstract class AbstractMap : Map {
|
||||
override val size: Int
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
actual abstract class AbstractMap() : Map {
|
||||
actual override val size: Int = 0
|
||||
}
|
||||
|
||||
actual class HashMap : AbstractMap(), Map
|
||||
Vendored
+15
@@ -0,0 +1,15 @@
|
||||
// WITH_STDLIB
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
// K2: false positve INCOMPATIBLE_MATCHING: KT-60155
|
||||
<!INCOMPATIBLE_MATCHING{JVM}!>public expect abstract class AbstractMutableMap<K, V> : MutableMap<K, V> {
|
||||
override val values: MutableCollection<V>
|
||||
}<!>
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
import java.util.AbstractMap
|
||||
|
||||
public actual abstract class AbstractMutableMap<K, V>() : MutableMap<K, V>, AbstractMap<K, V>()
|
||||
Vendored
+15
@@ -0,0 +1,15 @@
|
||||
// WITH_STDLIB
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
// K2: false positve INCOMPATIBLE_MATCHING: KT-60155
|
||||
public expect abstract class AbstractMutableMap<K, V> : MutableMap<K, V> {
|
||||
override val values: MutableCollection<V>
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
import java.util.AbstractMap
|
||||
|
||||
public actual abstract class AbstractMutableMap<K, V>() : MutableMap<K, V>, AbstractMap<K, V>()
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
// FIR_IDENTICAL
|
||||
// MODULE: m1-common
|
||||
// FILE: common.kt
|
||||
|
||||
expect class Foo {
|
||||
fun foo(): Int
|
||||
}
|
||||
|
||||
// MODULE: m2-jvm()()(m1-common)
|
||||
// FILE: jvm.kt
|
||||
|
||||
interface FooProvider {
|
||||
fun foo(): Int = 42
|
||||
}
|
||||
|
||||
actual class Foo : FooProvider
|
||||
Reference in New Issue
Block a user