Add JVM ABI K1/K2 consistency tests

This commit is contained in:
vladislav.grechko
2023-12-26 10:18:19 +00:00
committed by Space Team
parent 5a1fb78fcd
commit 34bac48541
1104 changed files with 88413 additions and 66 deletions
@@ -0,0 +1,17 @@
MODULE main
CLASS CollectionKt$box$6.class
Property: class.signature
K1
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;
K2
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Ljava/lang/Object;>;
K1
invoke()V [public, final]
K2
---
METHOD invoke()Ljava/lang/Object;
Property: method.access
K1
1000001000001 [public, bridge, synthetic]
K2
10001 [public, final]
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// JVM_ABI_K1_K2_DIFF: KT-62550
class MyCollection<T>: Collection<T> {
override val size: Int get() = 0
@@ -0,0 +1,33 @@
MODULE main
CLASS ListKt$box$6.class
Property: class.signature
K1
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;
K2
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Ljava/lang/Object;>;
K1
invoke()V [public, final]
K2
---
METHOD invoke()Ljava/lang/Object;
Property: method.access
K1
1000001000001 [public, bridge, synthetic]
K2
10001 [public, final]
CLASS ListKt$box$8.class
Property: class.signature
K1
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;
K2
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Ljava/lang/Object;>;
K1
invoke()V [public, final]
K2
---
METHOD invoke()Ljava/lang/Object;
Property: method.access
K1
1000001000001 [public, bridge, synthetic]
K2
10001 [public, final]
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// JVM_ABI_K1_K2_DIFF: KT-62550
class MyList<T>: List<T> {
override val size: Int get() = 0
@@ -0,0 +1,33 @@
MODULE main
CLASS ListIteratorKt$box$1.class
Property: class.signature
K1
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;
K2
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Ljava/lang/Object;>;
K1
invoke()V [public, final]
K2
---
METHOD invoke()Ljava/lang/Object;
Property: method.access
K1
1000001000001 [public, bridge, synthetic]
K2
10001 [public, final]
CLASS ListIteratorKt$box$2.class
Property: class.signature
K1
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;
K2
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Ljava/lang/Object;>;
K1
invoke()V [public, final]
K2
---
METHOD invoke()Ljava/lang/Object;
Property: method.access
K1
1000001000001 [public, bridge, synthetic]
K2
10001 [public, final]
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// JVM_ABI_K1_K2_DIFF: KT-62550
class MyListIterator<T> : ListIterator<T> {
override fun next(): T = null!!
@@ -0,0 +1,6 @@
MODULE main
CLASS MyMap.class
K1
---
K2
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// JVM_ABI_K1_K2_DIFF: KT-57268
class MyMap<K, V>: Map<K, V> {
override val size: Int get() = 0
@@ -0,0 +1,6 @@
MODULE main
CLASS MyMap.class
K1
---
K2
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public]
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// JVM_ABI_K1_K2_DIFF: KT-57268
class MyMap<K, V>: Map<K, V> {
override val size: Int get() = 0
@@ -0,0 +1,33 @@
MODULE main
CLASS SubstitutedListKt$box$6.class
Property: class.signature
K1
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;
K2
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Ljava/lang/Object;>;
K1
invoke()V [public, final]
K2
---
METHOD invoke()Ljava/lang/Object;
Property: method.access
K1
1000001000001 [public, bridge, synthetic]
K2
10001 [public, final]
CLASS SubstitutedListKt$box$8.class
Property: class.signature
K1
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;
K2
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Ljava/lang/Object;>;
K1
invoke()V [public, final]
K2
---
METHOD invoke()Ljava/lang/Object;
Property: method.access
K1
1000001000001 [public, bridge, synthetic]
K2
10001 [public, final]
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// JVM_ABI_K1_K2_DIFF: KT-62550
class MyList: List<String> {
override val size: Int get() = 0
@@ -0,0 +1,85 @@
MODULE main
CLASS A.class
CLASS METADATA
K1
getSize()I
K2
---
K1
---
K2
size
CLASS B.class
CLASS METADATA
K1
getSize()I
K2
---
K1
---
K2
size
CLASS DelegationToArrayListKt$box$7.class
Property: class.signature
K1
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;
K2
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Ljava/lang/Object;>;
K1
invoke()V [public, final]
K2
---
METHOD invoke()Ljava/lang/Object;
Property: method.access
K1
1000001000001 [public, bridge, synthetic]
K2
10001 [public, final]
CLASS DelegationToArrayListKt$box$8.class
Property: class.signature
K1
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;
K2
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Ljava/lang/Object;>;
K1
invoke()V [public, final]
K2
---
METHOD invoke()Ljava/lang/Object;
Property: method.access
K1
1000001000001 [public, bridge, synthetic]
K2
10001 [public, final]
CLASS DelegationToArrayListKt$box$17.class
Property: class.signature
K1
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;
K2
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Ljava/lang/Object;>;
K1
invoke()V [public, final]
K2
---
METHOD invoke()Ljava/lang/Object;
Property: method.access
K1
1000001000001 [public, bridge, synthetic]
K2
10001 [public, final]
CLASS DelegationToArrayListKt$box$18.class
Property: class.signature
K1
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;
K2
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Ljava/lang/Object;>;
K1
invoke()V [public, final]
K2
---
METHOD invoke()Ljava/lang/Object;
Property: method.access
K1
1000001000001 [public, bridge, synthetic]
K2
10001 [public, final]
@@ -1,4 +1,5 @@
// TARGET_BACKEND: JVM
// JVM_ABI_K1_K2_DIFF: KT-62550, KT-63828
import java.util.ArrayList
@@ -0,0 +1,18 @@
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,4 +1,5 @@
// TARGET_BACKEND: JVM
// JVM_ABI_K1_K2_DIFF: KT-57268
import java.util.AbstractMap
import java.util.Collections
@@ -0,0 +1,18 @@
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,6 +2,8 @@
// 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>()
fun box(): String {
@@ -0,0 +1,9 @@
MODULE main
CLASS Test.class
CLASS METADATA
FUNCTION removeAt(I)Ljava/lang/Integer;
Property: class.metadata.function.modifiers
K1
public open
K2
public open operator
@@ -3,6 +3,8 @@
// SKIP_JDK6
// FULL_JDK
// JVM_ABI_K1_K2_DIFF: KT-63857
// FILE: superCallToFakeRemoveAt.kt
class Test : IntArrayList() {
override fun removeAt(index: Int): Int {
@@ -0,0 +1,9 @@
MODULE main
CLASS Test.class
CLASS METADATA
FUNCTION removeAt(I)Ljava/lang/Integer;
Property: class.metadata.function.modifiers
K1
public open
K2
public open operator
@@ -3,6 +3,8 @@
// SKIP_JDK6
// FULL_JDK
// JVM_ABI_K1_K2_DIFF: KT-63857
// FILE: superCallToRemoveAt.kt
class Test : IntArrayList() {
override fun removeAt(index: Int): Int {
@@ -0,0 +1,9 @@
MODULE main
CLASS Test.class
CLASS METADATA
FUNCTION removeAt(I)Ljava/lang/Integer;
Property: class.metadata.function.modifiers
K1
public open
K2
public open operator
@@ -3,6 +3,8 @@
// SKIP_JDK6
// FULL_JDK
// JVM_ABI_K1_K2_DIFF: KT-63857
// FILE: superCallToRemoveAtInJavaDefault.kt
class Test : IntArrayList() {
override fun removeAt(index: Int): Int {
@@ -0,0 +1,21 @@
MODULE main
CLASS ImmutableCollection.class
CLASS METADATA
FUNCTION add(Ljava/lang/Object;)LImmutableCollection;
Property: class.metadata.function.valueParameters
K1
(element: T#0)
K2
(element: @kotlin/UnsafeVariance T#0)
FUNCTION addAll(Ljava/util/Collection;)LImmutableCollection;
Property: class.metadata.function.valueParameters
K1
(elements: kotlin/collections/Collection<T#0>)
K2
(elements: kotlin/collections/Collection<@kotlin/UnsafeVariance T#0>)
FUNCTION remove(Ljava/lang/Object;)LImmutableCollection;
Property: class.metadata.function.valueParameters
K1
(element: T#0)
K2
(element: @kotlin/UnsafeVariance T#0)
@@ -3,6 +3,8 @@
// FULL_JDK
// WITH_STDLIB
// JVM_ABI_K1_K2_DIFF: KT-63858
interface ImmutableCollection<out E> : Collection<E> {
fun add(element: @UnsafeVariance E): ImmutableCollection<E>
fun addAll(elements: Collection<@UnsafeVariance E>): ImmutableCollection<E>
@@ -0,0 +1,17 @@
MODULE main
CLASS ManyTypeParametersWithUpperBoundsKt$box$6.class
Property: class.signature
K1
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Lkotlin/Unit;>;
K2
Lkotlin/jvm/internal/Lambda;Lkotlin/jvm/functions/Function0<Ljava/lang/Object;>;
K1
invoke()V [public, final]
K2
---
METHOD invoke()Ljava/lang/Object;
Property: method.access
K1
1000001000001 [public, bridge, synthetic]
K2
10001 [public, final]
@@ -1,5 +1,6 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// JVM_ABI_K1_K2_DIFF: KT-62550
class A<U : Number, V : U, W : V> : Set<W> {
override val size: Int get() = 0
@@ -0,0 +1,35 @@
MODULE main
CLASS B.class
K1
getOrDefault(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String; [public, final, bridge]
K2
---
K1
getOrDefault(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; [public, bridge]
K2
---
K1
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public, final, bridge]
K2
---
K1
remove(Ljava/lang/String;Ljava/lang/String;)Z [public, bridge]
K2
---
CLASS D.class
K1
getOrDefault(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String; [public, final, bridge]
K2
---
K1
getOrDefault(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; [public, bridge]
K2
---
K1
remove(Ljava/lang/Object;Ljava/lang/Object;)Z [public, final, bridge]
K2
---
K1
remove(Ljava/lang/String;Ljava/lang/String;)Z [public, bridge]
K2
---
@@ -4,6 +4,7 @@
// JVM_TARGET: 1.8
// WITH_STDLIB
// FULL_JDK
// JVM_ABI_K1_K2_DIFF: KT-57301
// There should be no DefaultImpls method for MutableMap.remove(K;V)
interface A<K, V> : MutableMap<K, V>