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:
committed by
Space Team
parent
7d584e0eb4
commit
672b5ba0d7
@@ -1,6 +0,0 @@
|
||||
MODULE main
|
||||
CLASS MyMap.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
@@ -1,5 +1,4 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
class MyMap<K, V>: Map<K, V> {
|
||||
override val size: Int get() = 0
|
||||
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
MODULE main
|
||||
CLASS MyMap.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
@@ -1,5 +1,4 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
class MyMap<K, V>: Map<K, V> {
|
||||
override val size: Int get() = 0
|
||||
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
MODULE main
|
||||
CLASS A.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(Ljava/lang/Integer;Ljava/lang/String;)Ljava/lang/String; [public, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String; [public, final, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Integer;Ljava/lang/String;)Z [public, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public, final, bridge]
|
||||
-1
@@ -1,5 +1,4 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
import java.util.AbstractMap
|
||||
import java.util.Collections
|
||||
|
||||
-18
@@ -1,18 +0,0 @@
|
||||
MODULE main
|
||||
CLASS A.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(Ljava/lang/Object;D)Ljava/lang/Double; [public, final, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(Ljava/lang/String;D)Ljava/lang/Double; [public, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public, final, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/String;Ljava/lang/Double;)Z [public, bridge]
|
||||
@@ -2,7 +2,6 @@
|
||||
// WASM_MUTE_REASON: STDLIB_COLLECTION_INHERITANCE
|
||||
// KJS_WITH_FULL_RUNTIME
|
||||
// DONT_TARGET_EXACT_BACKEND: NATIVE
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
class A : HashMap<String, Double>()
|
||||
|
||||
|
||||
-4
@@ -93,10 +93,6 @@ MODULE main
|
||||
---
|
||||
K2
|
||||
values
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
CLASS MM.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268, KT-63955, KT-63828
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63955, KT-63828
|
||||
|
||||
class Itr : Iterator<String> by ArrayList<String>().iterator()
|
||||
class MItr : MutableIterator<String> by ArrayList<String>().iterator()
|
||||
|
||||
-4
@@ -93,10 +93,6 @@ MODULE main
|
||||
---
|
||||
K2
|
||||
values
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
CLASS MM.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268, KT-63955, KT-63828
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63955, KT-63828
|
||||
|
||||
class Itr : Iterator<String> by ArrayList<String>().iterator()
|
||||
class MItr : MutableIterator<String> by ArrayList<String>().iterator()
|
||||
|
||||
Vendored
-6
@@ -1,6 +0,0 @@
|
||||
MODULE main
|
||||
CLASS M.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
-1
@@ -1,5 +1,4 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
// WITH_STDLIB
|
||||
|
||||
abstract class Itr : Iterator<String>
|
||||
|
||||
-4
@@ -93,10 +93,6 @@ MODULE main
|
||||
---
|
||||
K2
|
||||
values
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
CLASS MM.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268, KT-63955, KT-63828
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63955, KT-63828
|
||||
|
||||
class Itr : Iterator<String> by ArrayList<String>().iterator()
|
||||
class MItr : MutableIterator<String> by ArrayList<String>().iterator()
|
||||
|
||||
-4
@@ -93,10 +93,6 @@ MODULE main
|
||||
---
|
||||
K2
|
||||
values
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
CLASS MM.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268, KT-63955, KT-63828
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63955, KT-63828
|
||||
|
||||
class Itr : Iterator<String> by ArrayList<String>().iterator()
|
||||
class MItr : MutableIterator<String> by ArrayList<String>().iterator()
|
||||
|
||||
Vendored
-4
@@ -93,10 +93,6 @@ MODULE main
|
||||
---
|
||||
K2
|
||||
values
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
CLASS MM.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268, KT-63955, KT-63828
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63955, KT-63828
|
||||
|
||||
class Itr : Iterator<String> by ArrayList<String>().iterator()
|
||||
class MItr : MutableIterator<String> by ArrayList<String>().iterator()
|
||||
|
||||
-4
@@ -93,10 +93,6 @@ MODULE main
|
||||
---
|
||||
K2
|
||||
values
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
CLASS MM.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63955, KT-63828
|
||||
|
||||
class Itr : Iterator<String> by ArrayList<String>().iterator()
|
||||
class MItr : MutableIterator<String> by ArrayList<String>().iterator()
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
MODULE main
|
||||
CLASS A.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String; [public, final, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; [public, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public, final, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/String;Ljava/lang/String;)Z [public, bridge]
|
||||
@@ -2,7 +2,6 @@
|
||||
// DONT_TARGET_EXACT_BACKEND: NATIVE
|
||||
// WASM_MUTE_REASON: STDLIB_COLLECTION_INHERITANCE
|
||||
// WITH_STDLIB
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
open class A : HashMap<String, String>()
|
||||
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
MODULE main
|
||||
CLASS KMap.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
@@ -1,5 +1,4 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
// FILE: J.java
|
||||
|
||||
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
MODULE main
|
||||
CLASS MapA.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
@@ -1,5 +1,4 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
// FILE: removeOverriddenInJava_Map.kt
|
||||
|
||||
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
MODULE main
|
||||
CLASS SuspendingMutableMap.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
CLASS MapSuspendAbstractClearKt$box$1$map$1.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(II)Ljava/lang/Integer; [public, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(Ljava/lang/Object;I)Ljava/lang/Integer; [public, final, bridge]
|
||||
@@ -1,5 +1,4 @@
|
||||
// WITH_STDLIB
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
import kotlin.coroutines.*
|
||||
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
MODULE main
|
||||
CLASS SuspendingMutableMap.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
@@ -1,5 +1,4 @@
|
||||
// WITH_STDLIB
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
import kotlin.coroutines.*
|
||||
|
||||
|
||||
-4
@@ -33,7 +33,3 @@ MODULE main
|
||||
---
|
||||
K2
|
||||
values
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
Vendored
-4
@@ -33,7 +33,3 @@ MODULE main
|
||||
---
|
||||
K2
|
||||
values
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
compiler/testData/codegen/box/inlineClasses/inlineClassCollection/inlineMapOfInlineClass.jvm_abi.txt
Vendored
-10
@@ -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]
|
||||
Vendored
-1
@@ -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)
|
||||
|
||||
-10
@@ -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]
|
||||
Vendored
-1
@@ -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)
|
||||
|
||||
-8
@@ -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]
|
||||
|
||||
-4
@@ -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)
|
||||
|
||||
-4
@@ -33,7 +33,3 @@ MODULE main
|
||||
---
|
||||
K2
|
||||
values
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
|
||||
+1
-1
@@ -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)
|
||||
|
||||
-6
@@ -1,6 +0,0 @@
|
||||
MODULE main
|
||||
CLASS test/A.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
@@ -1,6 +1,5 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// WITH_REFLECT
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
package test
|
||||
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
MODULE main
|
||||
CLASS EmptyMap.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
@@ -1,5 +1,3 @@
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
private object EmptyMap : Map<Any, Nothing> {
|
||||
override val size: Int get() = 0
|
||||
override fun isEmpty(): Boolean = true
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
MODULE main
|
||||
CLASS EmptyStringMap.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
@@ -1,5 +1,3 @@
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
private object EmptyStringMap : Map<String, Nothing> {
|
||||
override val size: Int get() = 0
|
||||
override fun isEmpty(): Boolean = true
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
MODULE main
|
||||
CLASS Map1.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; [public, final, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; [public, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public, final, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/String;Ljava/lang/Object;)Z [public, bridge]
|
||||
@@ -2,7 +2,6 @@
|
||||
// WASM_MUTE_REASON: STDLIB_COLLECTION_INHERITANCE
|
||||
// KJS_WITH_FULL_RUNTIME
|
||||
// DONT_TARGET_EXACT_BACKEND: NATIVE
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
open class Map1 : HashMap<String, Any?>()
|
||||
class Map2 : Map1()
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
MODULE main
|
||||
CLASS A.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
@@ -1,5 +1,3 @@
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
class A : Map<String, String> {
|
||||
override val size: Int get() = 56
|
||||
|
||||
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
MODULE main
|
||||
CLASS AbstractFoo.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
|
||||
CLASS StringFoo.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; [public, final, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object; [public, bridge]
|
||||
CLASS IntFoo.class
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(ILjava/lang/Object;)Ljava/lang/Object; [public, bridge]
|
||||
K1
|
||||
---
|
||||
K2
|
||||
getOrDefault(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; [public, final, bridge]
|
||||
@@ -1,5 +1,3 @@
|
||||
// JVM_ABI_K1_K2_DIFF: KT-57268
|
||||
|
||||
var result = ""
|
||||
|
||||
public abstract class AbstractFoo<K, V> : Map<K, V> {
|
||||
|
||||
Vendored
-3
@@ -1,6 +1,3 @@
|
||||
// WITH_SIGNATURES
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
|
||||
abstract class ByteShortMap : Map<Byte, Short>
|
||||
|
||||
Vendored
-3
@@ -1,6 +1,3 @@
|
||||
// WITH_SIGNATURES
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
|
||||
abstract class GenericMap<K, V> : Map<K, V>
|
||||
|
||||
compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/genericStringMap.kt
Vendored
-3
@@ -1,6 +1,3 @@
|
||||
// WITH_SIGNATURES
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
|
||||
abstract class GenericStringMap<K> : Map<K, String>
|
||||
|
||||
Vendored
-3
@@ -1,6 +1,3 @@
|
||||
// WITH_SIGNATURES
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
|
||||
abstract class NumberStringMap : Map<Number, String>
|
||||
|
||||
-3
@@ -1,8 +1,5 @@
|
||||
// WITH_SIGNATURES
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
|
||||
abstract class GenericMap<K, V> : Map<K, V>
|
||||
|
||||
abstract class NumberStringMap : GenericMap<Number, String>()
|
||||
|
||||
compiler/testData/codegen/bytecodeListing/collectionStubs/abstractStubSignatures/stringGenericMap.kt
Vendored
-3
@@ -1,6 +1,3 @@
|
||||
// WITH_SIGNATURES
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
|
||||
abstract class StringGenericMap<V> : Map<String, V>
|
||||
|
||||
Vendored
+103
@@ -0,0 +1,103 @@
|
||||
MODULE main
|
||||
CLASS DGenericCollection.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
CLASS DGenericSet.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
CLASS DGenericList.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
CLASS DGenericMap.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
---
|
||||
K2
|
||||
entries
|
||||
K1
|
||||
getEntries()Ljava/util/Set;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getKeys()Ljava/util/Set;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getValues()Ljava/util/Collection;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
keys
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
K1
|
||||
---
|
||||
K2
|
||||
values
|
||||
CLASS DGenericMapEntry.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getKey()Ljava/lang/Object;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getValue()Ljava/lang/Object;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
key
|
||||
K1
|
||||
---
|
||||
K2
|
||||
value
|
||||
CLASS DGenericCollectionBySet.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
CLASS DGenericCollectionByList.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
+1
-2
@@ -1,5 +1,4 @@
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
// JVM_ABI_K1_K2_DIFF: KT-65323
|
||||
|
||||
class DGenericIterator<T>(d: Iterator<T>) : Iterator<T> by d
|
||||
|
||||
|
||||
Vendored
+103
@@ -0,0 +1,103 @@
|
||||
MODULE main
|
||||
CLASS DStringCollection.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
CLASS DStringSet.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
CLASS DStringList.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
CLASS DStringMap.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
---
|
||||
K2
|
||||
entries
|
||||
K1
|
||||
getEntries()Ljava/util/Set;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getKeys()Ljava/util/Set;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getValues()Ljava/util/Collection;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
keys
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
K1
|
||||
---
|
||||
K2
|
||||
values
|
||||
CLASS DStringMapEntry.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getKey()Ljava/lang/String;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getValue()Ljava/lang/Number;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
key
|
||||
K1
|
||||
---
|
||||
K2
|
||||
value
|
||||
CLASS DStringCollectionBySet.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
CLASS DStringCollectionByList.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
+1
-2
@@ -1,5 +1,4 @@
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
// JVM_ABI_K1_K2_DIFF: KT-65323
|
||||
|
||||
class DStringIterator(d: Iterator<String>) : Iterator<String> by d
|
||||
|
||||
|
||||
Vendored
+103
@@ -0,0 +1,103 @@
|
||||
MODULE main
|
||||
CLASS DIntCollection.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
CLASS DIntSet.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
CLASS DIntList.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
CLASS DIntMap.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
---
|
||||
K2
|
||||
entries
|
||||
K1
|
||||
getEntries()Ljava/util/Set;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getKeys()Ljava/util/Set;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getValues()Ljava/util/Collection;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
keys
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
K1
|
||||
---
|
||||
K2
|
||||
values
|
||||
CLASS DIntMapEntry.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getKey()Ljava/lang/Integer;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
getValue()Ljava/lang/Double;
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
key
|
||||
K1
|
||||
---
|
||||
K2
|
||||
value
|
||||
CLASS DIntCollectionBySet.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
CLASS DIntCollectionByList.class
|
||||
CLASS METADATA
|
||||
K1
|
||||
getSize()I
|
||||
K2
|
||||
---
|
||||
K1
|
||||
---
|
||||
K2
|
||||
size
|
||||
+1
-2
@@ -1,5 +1,4 @@
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
// JVM_ABI_K1_K2_DIFF: KT-65323
|
||||
|
||||
class DIntIterator(d: Iterator<Int>) : Iterator<Int> by d
|
||||
|
||||
|
||||
+1
-3
@@ -1,9 +1,7 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status:
|
||||
// 1) KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
// 2) KT-57300 K2: subclass of MutableCollection with primitive element type has methods with boxed type
|
||||
// FIR status: KT-57300 K2: subclass of MutableCollection with primitive element type has methods with boxed type
|
||||
// (`containsValue(Ljava/lang/Double;)Z` instead of `containsValue(D)Z`)
|
||||
|
||||
abstract class AMapSD : AbstractMap<String, Double>()
|
||||
|
||||
Vendored
+9
@@ -0,0 +1,9 @@
|
||||
MODULE main
|
||||
CLASS MyMap.class
|
||||
CLASS METADATA
|
||||
PROPERTY getValues()Ljava/util/ArrayList;
|
||||
Property: class.metadata.property.returnType
|
||||
K1
|
||||
java/util/ArrayList<T#1> /* = kotlin/collections/ArrayList^<T#1> */
|
||||
K2
|
||||
java/util/ArrayList<T#1>
|
||||
+2
-3
@@ -1,9 +1,8 @@
|
||||
// JVM_ABI_K1_K2_DIFF: KT-63864
|
||||
|
||||
// Ensure the proper collection stubs are added, in
|
||||
// particular *not* when specialized implementations are provided.
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
|
||||
class MyMap<K, V> : Map<K, V> {
|
||||
|
||||
class MySet<E> : Set<E> {
|
||||
|
||||
-3
@@ -1,8 +1,5 @@
|
||||
// See KT-42033
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
|
||||
interface ObservableMap<K, V> : Map<K, V>
|
||||
|
||||
abstract class ObservableMutableMap<K, V> : ObservableMap<K, V> {
|
||||
|
||||
-4
@@ -1,9 +1,5 @@
|
||||
// IGNORE_ANNOTATIONS
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
// (in this case, it's `getOrDefault-impl` because of inline class mangling, and then `remove` is unmangled for some reason)
|
||||
|
||||
inline class InlineMap<K, V>(private val map: Map<K, V>) : Map<K, V> {
|
||||
override val entries: Set<Map.Entry<K, V>> get() = map.entries
|
||||
override val keys: Set<K> get() = map.keys
|
||||
|
||||
-4
@@ -1,9 +1,5 @@
|
||||
// IGNORE_ANNOTATIONS
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
// (in this case, it's `remove-impl`/`getOrDefault-impl` because of inline class mangling)
|
||||
|
||||
inline class InlineMutableMap<K, V>(private val mmap: MutableMap<K, V>) : MutableMap<K, V> {
|
||||
override val size: Int get() = mmap.size
|
||||
override fun containsKey(key: K): Boolean = mmap.containsKey(key)
|
||||
|
||||
Vendored
-4
@@ -1,9 +1,5 @@
|
||||
// IGNORE_ANNOTATIONS
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
// (in this case, it's `getOrDefault-h8vw2VU` because of inline class mangling, and then `remove` is unmangled for some reason)
|
||||
|
||||
inline class IK(val x: Int)
|
||||
inline class IV(val x: Double)
|
||||
|
||||
|
||||
Vendored
-4
@@ -1,9 +1,5 @@
|
||||
// IGNORE_ANNOTATIONS
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
// (in this case, it's `remove-YEowaJk`/`getOrDefault-h8vw2VU` because of inline class mangling)
|
||||
|
||||
inline class IK(val x: Int)
|
||||
inline class IV(val x: Double)
|
||||
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
// WITH_STDLIB
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
|
||||
open class A : HashMap<String, String>()
|
||||
|
||||
class B : A()
|
||||
|
||||
-3
@@ -1,8 +1,5 @@
|
||||
// WITH_SIGNATURES
|
||||
|
||||
// IGNORE_BACKEND_K2: JVM_IR
|
||||
// FIR status: KT-57268 K2: extra methods `remove` and/or `getOrDefault` are generated for Map subclasses with JDK 1.6 in dependencies
|
||||
|
||||
interface MapN<K : Number, V> : Map<K, V>
|
||||
|
||||
abstract class MapImpl<A, B> : Map<A, B> {
|
||||
|
||||
Reference in New Issue
Block a user