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,33 @@
MODULE main
CLASS A3.class
CLASS METADATA
FUNCTION removeAt(I)Ljava/lang/String;
Property: class.metadata.function.modifiers
K1
public open
K2
public open operator
CLASS A4.class
CLASS METADATA
FUNCTION removeAt(I)Ljava/lang/String;
Property: class.metadata.function.modifiers
K1
public abstract
K2
public abstract operator
CLASS A5.class
CLASS METADATA
FUNCTION removeAt(I)Ljava/lang/String;
Property: class.metadata.function.modifiers
K1
public open
K2
public open operator
CLASS A6.class
CLASS METADATA
FUNCTION removeAt(I)Ljava/lang/String;
Property: class.metadata.function.modifiers
K1
public abstract
K2
public abstract operator
@@ -1,3 +1,5 @@
// JVM_ABI_K1_K2_DIFF: KT-63857
abstract class A1<T> : MutableList<T> {
override fun remove(x: T): Boolean = true
override fun removeAt(index: Int): T = null!!
@@ -0,0 +1,13 @@
MODULE main
CLASS kotlin/UInt.class
METHOD constructor-impl(I)I
Annotation: method.visibleAnnotations
K1
---
K2
@Lkotlin/internal/IntrinsicConstEvaluation;
Annotation: method.invisibleAnnotations
K1
@Lkotlin/internal/IntrinsicConstEvaluation;
K2
---
@@ -1,5 +1,6 @@
// !LANGUAGE: +InlineClasses
// ALLOW_KOTLIN_PACKAGE
// JVM_ABI_K1_K2_DIFF: KT-62750
// FILE: uint.kt
@file:Suppress("INVISIBLE_REFERENCE", "INVISIBLE_MEMBER")
@@ -0,0 +1,9 @@
MODULE main
CLASS ForInSequenceWithIndexThrowsCMEKt.class
PACKAGE METADATA
PROPERTY getXsl()Ljava/util/ArrayList;
Property: class.metadata.property.returnType
K1
java/util/ArrayList<kotlin/String> /* = kotlin/collections/ArrayList^<kotlin/String> */
K2
java/util/ArrayList<kotlin/String>
@@ -1,4 +1,5 @@
// FULL_JDK
// JVM_ABI_K1_K2_DIFF: KT-63864
// IMPORTANT!
// Please, when your changes cause failures in bytecodeText tests for 'for' loops,
@@ -0,0 +1,65 @@
MODULE main
CLASS FinallyMarkersKt$box$$inlined$test$1.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
finallyMarkers.kt
Kotlin
*S Kotlin
*F
+ 1 finallyMarkers.kt
FinallyMarkersKt$test$1
+ 2 finallyMarkers.kt
FinallyMarkersKt
*L
1#1,28:1
17#2,3:29
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
finallyMarkers.kt
Kotlin
*S Kotlin
*F
+ 1 finallyMarkers.kt
FinallyMarkersKt$test$1
+ 2 finallyMarkers.kt
FinallyMarkersKt
*L
1#1,28:1
17#2,4:29
*E
} )
CLASS FinallyMarkersKt$box$$inlined$test$2.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
finallyMarkers.kt
Kotlin
*S Kotlin
*F
+ 1 finallyMarkers.kt
FinallyMarkersKt$test$3
+ 2 finallyMarkers.kt
FinallyMarkersKt
*L
1#1,28:1
17#2,3:29
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
finallyMarkers.kt
Kotlin
*S Kotlin
*F
+ 1 finallyMarkers.kt
FinallyMarkersKt$test$3
+ 2 finallyMarkers.kt
FinallyMarkersKt
*L
1#1,28:1
17#2,4:29
*E
} )
@@ -1,3 +1,5 @@
// JVM_ABI_K1_K2_DIFF: KT-62464
inline fun test(crossinline l: () -> String) {
{
l()
@@ -0,0 +1,13 @@
MODULE main
CLASS IntConstantSafeCallKt.class
METHOD foo()Ljava/lang/String;
Annotation: method.invisibleAnnotations
K1
@Lorg/jetbrains/annotations/NotNull;
K2
---
Annotation: method.invisibleAnnotations
K1
---
K2
@Lorg/jetbrains/annotations/Nullable;
@@ -1,3 +1,4 @@
// JVM_ABI_K1_K2_DIFF: KT-62485
fun foo() = 10?.toString()
// 0 IFNULL
@@ -0,0 +1,48 @@
MODULE main
CLASS Example.class
CLASS METADATA
PROPERTY b5
Property: class.metadata.property.setterModifiers
K1
private final /* non-default */
K2
private final
Property: class.metadata.property.setterValueParameter
K1
<set-?>: kotlin/Int
K2
---
PROPERTY getB1()I
Property: class.metadata.property.setterValueParameter
K1
<set-?>: kotlin/Int
K2
value: kotlin/Int
PROPERTY getB2()I
Property: class.metadata.property.setterValueParameter
K1
<set-?>: kotlin/Int
K2
value: kotlin/Int
PROPERTY getB3()I
Property: class.metadata.property.setterModifiers
K1
public final /* non-default */
K2
public final
Property: class.metadata.property.setterValueParameter
K1
<set-?>: kotlin/Int
K2
---
PROPERTY getB4()I
Property: class.metadata.property.setterModifiers
K1
public final /* non-default */
K2
public final
Property: class.metadata.property.setterValueParameter
K1
<set-?>: kotlin/Int
K2
---
+2
View File
@@ -1,3 +1,5 @@
// JVM_ABI_K1_K2_DIFF: KT-63850, KT-63854
class Example
{
var a1 = 0
@@ -0,0 +1,33 @@
MODULE main
CLASS Kt48367Kt$flaf$$inlined$bar$1.class
Annotation: class.invisibleAnnotations
K1
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
kt48367.kt
Kotlin
*S Kotlin
*F
+ 1 kt48367.kt
Kt48367Kt$bar$1
+ 2 kt48367.kt
Kt48367Kt
*L
1#1,23:1
9#2,2:24
*E
} )
K2
@Lkotlin/jvm/internal/SourceDebugExtension;( value: #{ SMAP
kt48367.kt
Kotlin
*S Kotlin
*F
+ 1 kt48367.kt
Kt48367Kt$bar$1
+ 2 kt48367.kt
Kt48367Kt
*L
1#1,23:1
9#2,3:24
*E
} )
+2
View File
@@ -1,3 +1,5 @@
// JVM_ABI_K1_K2_DIFF: KT-62464
fun foo(block: () -> String): String = block()
inline fun bar(crossinline f: () -> String) = foo { f() }
@@ -0,0 +1,9 @@
MODULE main
CLASS TestAccessor$Companion.class
CLASS METADATA
PROPERTY getProp()Ljava/lang/String;
Property: class.metadata.property.setterValueParameter
K1
<set-?>: kotlin/String
K2
value: kotlin/String
+2
View File
@@ -1,3 +1,5 @@
// JVM_ABI_K1_K2_DIFF: KT-63984
// FILE: Dummy.kt
// Empty body to trigger multifile test mode
@@ -0,0 +1,9 @@
MODULE main
CLASS A.class
CLASS METADATA
PROPERTY getProp()Ljava/lang/String;
Property: class.metadata.property.setterValueParameter
K1
<set-?>: kotlin/String
K2
value: kotlin/String
+1 -1
View File
@@ -1,5 +1,5 @@
// LAMBDAS: CLASS
// JVM_ABI_K1_K2_DIFF: KT-63984
class A {
public var prop = "O"
private set
@@ -0,0 +1,11 @@
MODULE main
CLASS DelegatedList.class
CLASS METADATA
K1
getSize()I
K2
---
K1
---
K2
size
@@ -1,5 +1,5 @@
// IGNORE_BACKEND: JVM
// JVM_ABI_K1_K2_DIFF: KT-63828
class DelegatedList : List<Int> by ArrayList()
@@ -1,6 +1,6 @@
// !LANGUAGE: -SafeCallsAreAlwaysNullable
// IGNORE_BACKEND_K2: JVM_IR
// Status: Feature is always on in K2
// Status: Feature is always on in K2. See KT-62930
fun test(s: String) = s?.length
@@ -0,0 +1,9 @@
MODULE main
CLASS DSegment.class
CLASS METADATA
PROPERTY getNotImplemented()LDPoint;
Property: class.metadata.property.setterValueParameter
K1
<anonymous parameter 0>: DPoint
K2
_: DPoint
@@ -3,6 +3,7 @@
// WITH_STDLIB
// TARGET_BACKEND: JVM_IR
// LANGUAGE: +ValueClasses
// JVM_ABI_K1_K2_DIFF: KT-62582
@JvmInline
value class DPoint(val x: Double, val y: Double) {