K2/Java: implement platform-dependent function filtering in JvmMappedScope

We drop Kotlin function 'remove' or 'getOrDefault' from JvmMappedScope,
if it has platform-dependent annotation, and the bound Java class scope
does not contain a function with the same signature.

#KT-57268 Fixed
This commit is contained in:
Mikhail Glukhikh
2024-01-24 16:50:47 +01:00
committed by Space Team
parent 7d584e0eb4
commit 672b5ba0d7
87 changed files with 352 additions and 373 deletions
@@ -33,7 +33,3 @@ MODULE main
---
K2
values
K1
---
K2
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
@@ -1,7 +1,7 @@
// WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
// JVM_ABI_K1_K2_DIFF: KT-57268, KT-63828
// JVM_ABI_K1_K2_DIFF: KT-63828
OPTIONAL_JVM_INLINE_ANNOTATION
value class FieldValue(val value: String)
@@ -33,7 +33,3 @@ MODULE main
---
K2
values
K1
---
K2
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
@@ -1,7 +1,7 @@
// WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
// JVM_ABI_K1_K2_DIFF: KT-57268, KT-63828
// JVM_ABI_K1_K2_DIFF: KT-63828
OPTIONAL_JVM_INLINE_ANNOTATION
value class FieldValue<T: String>(val value: T)
@@ -1,10 +0,0 @@
MODULE main
CLASS ZArrayMap.class
K1
---
K2
getOrDefault-SjU93Dg([III)I [public, static]
K1
---
K2
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
@@ -1,7 +1,6 @@
// WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
// JVM_ABI_K1_K2_DIFF: KT-57268
OPTIONAL_JVM_INLINE_ANNOTATION
value class Z(val x: Int)
@@ -1,10 +0,0 @@
MODULE main
CLASS ZArrayMap.class
K1
---
K2
getOrDefault-SjU93Dg([III)I [public, static]
K1
---
K2
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
@@ -1,7 +1,6 @@
// WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
// JVM_ABI_K1_K2_DIFF: KT-57268
OPTIONAL_JVM_INLINE_ANNOTATION
value class Z<T: Int>(val x: T)
@@ -43,11 +43,3 @@ MODULE main
---
K2
values
K1
---
K2
getOrDefault-impl(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; [public, static]
K1
---
K2
remove-impl(Ljava/util/Map;Ljava/lang/Object;Ljava/lang/Object;)Z [public, static]
@@ -33,7 +33,3 @@ MODULE main
---
K2
values
K1
---
K2
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
@@ -1,7 +1,7 @@
// WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses
// JVM_ABI_K1_K2_DIFF: KT-57268, KT-63828
// JVM_ABI_K1_K2_DIFF: KT-63828
OPTIONAL_JVM_INLINE_ANNOTATION
value class Wrapper(val id: Int)
@@ -33,7 +33,3 @@ MODULE main
---
K2
values
K1
---
K2
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
@@ -1,7 +1,7 @@
// WITH_STDLIB
// WORKS_WHEN_VALUE_CLASS
// LANGUAGE: +ValueClasses, +GenericInlineClassParameter
// JVM_ABI_K1_K2_DIFF: KT-57268, KT-63828
// JVM_ABI_K1_K2_DIFF: KT-63828
OPTIONAL_JVM_INLINE_ANNOTATION
value class Wrapper<T: Int>(val id: T)