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,30 @@
MODULE lib
CLASS AKt.class
PACKAGE METADATA
TYPE ALIAS MyCMaybeFoo
Property: class.metadata.typeAlias.underlyingType
K1
C<@Anno(value = "OK") MyMaybeFoo^>
K2
C<@Anno(value = "OK") Foo? /* = @Anno(value = "OK") MyMaybeFoo^ */>
TYPE ALIAS MyCMyFoo
Property: class.metadata.typeAlias.underlyingType
K1
C<@Anno(value = "OK") MyFoo^?>
K2
C<@Anno(value = "OK") Foo? /* = @Anno(value = "OK") MyFoo^? */>
MODULE main
CLASS BKt.class
PACKAGE METADATA
FUNCTION testMyFoo(LC;)V
Property: class.metadata.function.valueParameters
K1
(myc: C<@Anno(value = "OK") Foo? /* = MyFoo^? */> /* = MyCMyFoo^ */)
K2
(myc: C<@Anno(value = "OK") Foo? /* = @Anno(value = "OK") MyFoo^? */> /* = MyCMyFoo^ */)
FUNCTION testMyMaybeFoo(LC;)V
Property: class.metadata.function.valueParameters
K1
(mycmyb: C<@Anno(value = "OK") Foo? /* = MyMaybeFoo^? */> /* = MyCMaybeFoo^ */)
K2
(mycmyb: C<@Anno(value = "OK") Foo? /* = @Anno(value = "OK") MyMaybeFoo^ */> /* = MyCMaybeFoo^ */)
@@ -1,5 +1,8 @@
// TARGET_BACKEND: JVM
// WITH_REFLECT
// JVM_ABI_K1_K2_DIFF: KT-63872
// MODULE: lib
// FILE: A.kt
@Target(AnnotationTarget.TYPE)
@@ -0,0 +1,9 @@
MODULE lib
CLASS A.class
CLASS METADATA
PROPERTY x
Property: class.metadata.property.returnType
K1
.A$x$1
K2
.A.<no name provided>
@@ -1,7 +1,8 @@
// TARGET_BACKEND: JVM
// MODULE: lib
// FILE: A.kt
// JVM_ABI_K1_K2_DIFF: KT-63868
// FILE: A.kt
abstract class A {
private val x = object {
fun foo() = "OK"
@@ -0,0 +1,9 @@
MODULE lib
CLASS A.class
CLASS METADATA
FUNCTION foo()Ljava/lang/Comparable;
Property: class.metadata.function.typeParameters
K1
<T#0 /* K */ : kotlin/Comparable<T#0!>!>
K2
<T#0 /* K */ : kotlin/Comparable<T#0 & Any..T#0?>!>
@@ -2,6 +2,8 @@
// WITH_STDLIB
// MODULE: lib
// JVM_ABI_K1_K2_DIFF: KT-63870
// FILE: JavaInterface.java
public interface JavaInterface {
<K extends Comparable<K>> K foo();
@@ -0,0 +1,17 @@
MODULE lib
CLASS Base.class
CLASS METADATA
PROPERTY getX()Ljava/lang/String;
Property: class.metadata.property.setterValueParameter
K1
<set-?>: kotlin/String
K2
value: kotlin/String
CLASS Derived.class
CLASS METADATA
PROPERTY getX()Ljava/lang/String;
Property: class.metadata.property.setterValueParameter
K1
<set-?>: kotlin/String
K2
value: kotlin/String
@@ -1,3 +1,5 @@
// JVM_ABI_K1_K2_DIFF: KT-63984
// MODULE: lib
// FILE: A.kt
abstract class Base {
@@ -0,0 +1,11 @@
MODULE main
CLASS TestClass.class
CLASS METADATA
K1
getTest()Ljava/lang/String;
K2
---
K1
---
K2
test
@@ -3,6 +3,8 @@
// JVM_TARGET: 1.8
// WITH_STDLIB
// JVM_ABI_K1_K2_DIFF: KT-63828, KT-63871
// MODULE: lib
// FILE: 1.kt
interface Test {
@@ -0,0 +1,17 @@
MODULE lib
CLASS lib/Anno.class
CLASS METADATA
PROPERTY uglyJvmName()Ljava/lang/String;
Property: class.metadata.property.getterModifiers
K1
public final
K2
public final /* non-default */
CLASS lib/AKt.class
PACKAGE METADATA
PROPERTY vget()I
Property: class.metadata.property.setterValueParameter
K1
<set-?>: kotlin/Int
K2
value: kotlin/Int
@@ -2,6 +2,8 @@
// WITH_STDLIB
// WITH_REFLECT
// JVM_ABI_K1_K2_DIFF: KT-63843, KT-63984
// MODULE: lib
// FILE: A.kt
@@ -0,0 +1,9 @@
MODULE lib
CLASS test/AKt.class
PACKAGE METADATA
PROPERTY getProperty()Ljava/lang/String;
Property: class.metadata.property.setterValueParameter
K1
<set-?>: kotlin/String
K2
value: kotlin/String
@@ -1,3 +1,5 @@
// JVM_ABI_K1_K2_DIFF: KT-63984
// MODULE: lib
// FILE: A.kt
package test
@@ -0,0 +1,9 @@
MODULE lib
CLASS lib/LibKt.class
PACKAGE METADATA
TYPE ALIAS DomainSingle
Property: class.metadata.typeAlias.underlyingType
K1
lib/Single<lib/DomainEither^<T#0>>
K2
lib/Single<lib/Either<T#0> /* = lib/DomainEither^<T#0> */>
@@ -1,3 +1,5 @@
// JVM_ABI_K1_K2_DIFF: KT-63872
// MODULE: lib
// FILE: lib.kt
@@ -0,0 +1,9 @@
MODULE lib
CLASS lib/LibKt.class
PACKAGE METADATA
TYPE ALIAS Effect
Property: class.metadata.typeAlias.underlyingType
K1
kotlin/Function1<lib/Dispatch^<T#0>, kotlin/Unit>
K2
kotlin/Function1<kotlin/Function1<T#0, kotlin/Unit> /* = lib/Dispatch^<T#0> */, kotlin/Unit>
@@ -1,3 +1,5 @@
// JVM_ABI_K1_K2_DIFF: KT-63872
// MODULE: lib
// FILE: lib.kt
@@ -0,0 +1,9 @@
MODULE lib
CLASS lib/LibKt.class
PACKAGE METADATA
TYPE ALIAS B
Property: class.metadata.typeAlias.underlyingType
K1
lib/Inv<lib/A^<T#0>>
K2
lib/Inv<lib/Inv<T#0> /* = lib/A^<T#0> */>
@@ -1,3 +1,5 @@
// JVM_ABI_K1_K2_DIFF: KT-63872
// MODULE: lib
// FILE: lib.kt
@@ -0,0 +1,11 @@
MODULE main
CLASS B.class
CLASS METADATA
K1
getName()Ljava/lang/String;
K2
---
K1
---
K2
name
@@ -1,4 +1,7 @@
// TARGET_BACKEND: JVM
// JVM_ABI_K1_K2_DIFF: KT-63828
// MODULE: lib
// FILE: A.kt
package a
@@ -0,0 +1,9 @@
MODULE lib
CLASS lib/AKt.class
PACKAGE METADATA
PROPERTY renamedGetFoo()Ljava/lang/String;
Property: class.metadata.property.setterValueParameter
K1
<set-?>: kotlin/String
K2
value: kotlin/String
@@ -1,6 +1,8 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// JVM_ABI_K1_K2_DIFF: KT-63984
// MODULE: lib
// FILE: A.kt
package lib