[FIR] Fix incorrect work of K2 expect-actual matcher when actual is Java

...field, which is fake override.
This was failing in Stdlib with `expect HashMap` + actual typealias to
`java.util.HashMap`.

^KT-63624 Fixed
This commit is contained in:
Roman Efremov
2024-01-16 18:24:24 +01:00
committed by Space Team
parent 3d2a37ee41
commit ee1ee965a1
5 changed files with 4 additions and 31 deletions
@@ -12,4 +12,4 @@
import java.util.AbstractMap
public actual abstract class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS, NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>AbstractMutableMap<!><K, V>() : MutableMap<K, V>, AbstractMap<K, V>()
public actual abstract class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>AbstractMutableMap<!><K, V>() : MutableMap<K, V>, AbstractMap<K, V>()
@@ -12,4 +12,4 @@ public expect abstract class AbstractMutableMap<K, V> : MutableMap<K, V> {
import java.util.AbstractMap
public actual abstract class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS, NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>AbstractMutableMap<!><K, V>() : MutableMap<K, V>, AbstractMap<K, V>()
public actual abstract class <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>AbstractMutableMap<!><K, V>() : MutableMap<K, V>, AbstractMap<K, V>()
@@ -1,28 +0,0 @@
// MODULE: m1-common
// FILE: common.kt
expect class MyHashMap<K, V> {
val values: Collection<V>
}
// MODULE: m2-jvm()()(m1-common)
// FILE: jvm.kt
interface MyMap<K, V> {
val values: Collection<V>
}
actual typealias <!NO_ACTUAL_CLASS_MEMBER_FOR_EXPECTED_CLASS!>MyHashMap<!><K, V> = MyHashMapJava<K, V>
// FILE: MyHashMapJava.java
import java.util.Collection;
public final class MyHashMapJava<K, V> extends AbstractMyHashMap<K, V> {
// fake override of field AbstractMyHashMap.values
}
abstract class AbstractMyHashMap<K, V> implements MyMap<K, V> {
protected Collection<V> values;
@Override
public Collection<V> getValues() {
return values;
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// MODULE: m1-common
// FILE: common.kt
expect class MyHashMap<K, V> {