Update bytecode text tests in JVM_IR
This commit is contained in:
+2
@@ -1,4 +1,6 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36646 Don't box primitive values in equality comparison with nullable primitive values in JVM_IR
|
||||||
|
|
||||||
fun testBoolean1(a: Boolean?, b: Boolean) = a == b
|
fun testBoolean1(a: Boolean?, b: Boolean) = a == b
|
||||||
fun testBoolean2(a: Boolean?, b: Boolean) = a != b
|
fun testBoolean2(a: Boolean?, b: Boolean) = a != b
|
||||||
|
|
||||||
|
|||||||
+2
@@ -1,4 +1,6 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36646 Don't box primitive values in equality comparison with nullable primitive values in JVM_IR
|
||||||
|
|
||||||
fun testBoolean1(a: Boolean, b: Boolean?) = a == b
|
fun testBoolean1(a: Boolean, b: Boolean?) = a == b
|
||||||
fun testBoolean2(a: Boolean, b: Boolean?) = a != b
|
fun testBoolean2(a: Boolean, b: Boolean?) = a != b
|
||||||
|
|
||||||
|
|||||||
+2
@@ -1,4 +1,6 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36646 Don't box primitive values in equality comparison with nullable primitive values in JVM_IR
|
||||||
|
|
||||||
fun testBoolean1(a: Boolean, b: Any?) = a == b
|
fun testBoolean1(a: Boolean, b: Any?) = a == b
|
||||||
fun testBoolean2(a: Boolean, b: Any?) = a != b
|
fun testBoolean2(a: Boolean, b: Any?) = a != b
|
||||||
|
|
||||||
|
|||||||
@@ -17,5 +17,11 @@ fun infiniteLoop() {
|
|||||||
while(true) {}
|
while(true) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// JVM_TEMPLATES
|
||||||
// 2 GOTO L7
|
// 2 GOTO L7
|
||||||
// 1 GOTO L1
|
// 1 GOTO L1
|
||||||
|
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 GOTO L6
|
||||||
|
// 1 GOTO L7
|
||||||
|
// 1 GOtO L0
|
||||||
+2
@@ -1,4 +1,6 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36769 Missing LVT entries for inline function (default) parameters at call site
|
||||||
|
|
||||||
inline fun test(p: String = "OK"): String {
|
inline fun test(p: String = "OK"): String {
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
|
|||||||
+2
@@ -1,4 +1,6 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36771 Missing special code for super calls to inline functions support in JVM_IR
|
||||||
|
|
||||||
//open modality to method handle check generation
|
//open modality to method handle check generation
|
||||||
open class A {
|
open class A {
|
||||||
inline fun test(p: String = "OK"): String {
|
inline fun test(p: String = "OK"): String {
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
fun test() {
|
fun test() {
|
||||||
fun local(s: Int) {
|
fun local(s: Int) {
|
||||||
}
|
}
|
||||||
@@ -6,4 +5,8 @@ fun test() {
|
|||||||
local(1)
|
local(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2 invoke \(I\)V
|
// JVM_TEMPLATES
|
||||||
|
// 2 invoke \(I\)V
|
||||||
|
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
// 1 INVOKESTATIC LocalFunKt\.test\$local \(I\)V
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36772 Equality compaison between enums should use reference equality in JVM_IR
|
||||||
|
|
||||||
enum class Bar {
|
enum class Bar {
|
||||||
ONE,
|
ONE,
|
||||||
TWO
|
TWO
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36773 Use counter loop when generating 'for' loop over an unsigned range in JVM_IR
|
||||||
|
|
||||||
fun testUIntRangeLiteral(a: UInt, b: UInt): Int {
|
fun testUIntRangeLiteral(a: UInt, b: UInt): Int {
|
||||||
var s = 0
|
var s = 0
|
||||||
|
|||||||
compiler/testData/codegen/bytecodeText/forLoop/forInSequenceWithIndex/forInEmptySequenceWithIndex.kt
Vendored
+1
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36774 Generate optimized loops over 'xs.withIndex()' in JVM_IR
|
||||||
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
||||||
val xs = listOf<Any>().asSequence()
|
val xs = listOf<Any>().asSequence()
|
||||||
|
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36774 Generate optimized loops over 'xs.withIndex()' in JVM_IR
|
||||||
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
||||||
fun <T : Sequence<*>> test(sequence: T): String {
|
fun <T : Sequence<*>> test(sequence: T): String {
|
||||||
val s = StringBuilder()
|
val s = StringBuilder()
|
||||||
|
|||||||
Vendored
+1
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36774 Generate optimized loops over 'xs.withIndex()' in JVM_IR
|
||||||
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
||||||
val xs = listOf("a", "b", "c", "d").asSequence()
|
val xs = listOf("a", "b", "c", "d").asSequence()
|
||||||
|
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36774 Generate optimized loops over 'xs.withIndex()' in JVM_IR
|
||||||
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
||||||
val xs = listOf("a", "b", "c", "d").asSequence()
|
val xs = listOf("a", "b", "c", "d").asSequence()
|
||||||
|
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36774 Generate optimized loops over 'xs.withIndex()' in JVM_IR
|
||||||
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
||||||
val xs = listOf("a", "b", "c", "d").asSequence()
|
val xs = listOf("a", "b", "c", "d").asSequence()
|
||||||
|
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36774 Generate optimized loops over 'xs.withIndex()' in JVM_IR
|
||||||
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
||||||
// FULL_JDK
|
// FULL_JDK
|
||||||
|
|
||||||
|
|||||||
+1
@@ -1,4 +1,5 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36774 Generate optimized loops over 'xs.withIndex()' in JVM_IR
|
||||||
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
// TODO: Handle Sequences by extending DefaultIterableHandler.
|
||||||
val xs = listOf("a", "b", "c", "d").asSequence()
|
val xs = listOf("a", "b", "c", "d").asSequence()
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND: JVM_IR
|
|
||||||
inline fun <reified T : Enum<T>> myValues(): String {
|
inline fun <reified T : Enum<T>> myValues(): String {
|
||||||
val values = enumValues<T>()
|
val values = enumValues<T>()
|
||||||
return "OK"
|
return "OK"
|
||||||
@@ -14,12 +13,23 @@ fun main() {
|
|||||||
value<Z>()
|
value<Z>()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// JVM_TEMPLATES
|
||||||
//2 reifiedOperationMarker
|
//2 reifiedOperationMarker
|
||||||
//1 INVOKESTATIC kotlin/jvm/internal/Intrinsics\.reifiedOperationMarker \(ILjava/lang/String;\)V\s*ICONST_0\s*ANEWARRAY java/lang/Enum
|
//1 INVOKESTATIC kotlin/jvm/internal/Intrinsics\.reifiedOperationMarker \(ILjava/lang/String;\)V\s*ICONST_0\s*ANEWARRAY java/lang/Enum
|
||||||
//1 INVOKESTATIC Z\.values \(\)\[LZ;
|
//1 INVOKESTATIC Z\.values \(\)\[LZ;
|
||||||
|
|
||||||
//4 valueOf
|
//4 valueOf
|
||||||
//1 INVOKESTATIC kotlin/jvm/internal/Intrinsics\.reifiedOperationMarker \(ILjava/lang/String;\)V\s*ACONST_NULL\s*ALOAD 2\s*INVOKESTATIC java/lang/Enum\.valueOf \(Ljava/lang/Class;Ljava/lang/String;\)Ljava/lang/Enum;
|
//1 INVOKESTATIC kotlin/jvm/internal/Intrinsics\.reifiedOperationMarker \(ILjava/lang/String;\)V\s*ACONST_NULL\s*ALOAD 2\s*INVOKESTATIC java/lang/Enum\.valueOf \(Ljava/lang/Class;Ljava/lang/String;\)Ljava/lang/Enum;
|
||||||
//1 INVOKESTATIC Z\.valueOf \(Ljava/lang/String;\)LZ;
|
//1 INVOKESTATIC Z\.valueOf \(Ljava/lang/String;\)LZ;
|
||||||
//1 public static valueOf
|
//1 public static valueOf
|
||||||
//2 INVOKESTATIC java/lang/Enum.valueOf \(Ljava/lang/Class;Ljava/lang/String;\)Ljava/lang/Enum;
|
//2 INVOKESTATIC java/lang/Enum.valueOf \(Ljava/lang/Class;Ljava/lang/String;\)Ljava/lang/Enum;
|
||||||
|
|
||||||
|
// JVM_IR_TEMPLATES
|
||||||
|
//2 reifiedOperationMarker
|
||||||
|
//1 INVOKESTATIC kotlin/jvm/internal/Intrinsics\.reifiedOperationMarker \(ILjava/lang/String;\)V\s*ICONST_0\s*ANEWARRAY java/lang/Enum
|
||||||
|
//1 INVOKESTATIC Z\.values \(\)\[LZ;
|
||||||
|
//4 valueOf
|
||||||
|
//1 INVOKESTATIC kotlin/jvm/internal/Intrinsics\.reifiedOperationMarker \(ILjava/lang/String;\)V\s*ACONST_NULL\s*ALOAD 2\s*INVOKESTATIC java/lang/Enum\.valueOf \(Ljava/lang/Class;Ljava/lang/String;\)Ljava/lang/Enum;
|
||||||
|
//1 INVOKESTATIC Z\.valueOf \(Ljava/lang/String;\)LZ;
|
||||||
|
//1 public final static valueOf
|
||||||
|
// ^ valueOf is generated as 'public final static' in JVM_IR
|
||||||
|
//2 INVOKESTATIC java/lang/Enum.valueOf \(Ljava/lang/Class;Ljava/lang/String;\)Ljava/lang/Enum;
|
||||||
Vendored
+1
@@ -1,5 +1,6 @@
|
|||||||
// !LANGUAGE: +InlineClasses
|
// !LANGUAGE: +InlineClasses
|
||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36783 Consider generating GETFIELD instructions instead of unbox-impl calls in special methods of inline classes in JVM_IR
|
||||||
|
|
||||||
inline class UInt(val value: Int)
|
inline class UInt(val value: Int)
|
||||||
inline class ULong(val value: Long)
|
inline class ULong(val value: Long)
|
||||||
|
|||||||
+6
-1
@@ -1,5 +1,6 @@
|
|||||||
// !LANGUAGE: +InlineClasses
|
// !LANGUAGE: +InlineClasses
|
||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36783 Consider generating GETFIELD instructions instead of unbox-impl calls in special methods of inline classes in JVM_IR
|
||||||
|
|
||||||
inline class Foo(val x: Int) {
|
inline class Foo(val x: Int) {
|
||||||
fun empty() {}
|
fun empty() {}
|
||||||
@@ -16,4 +17,8 @@ inline class Foo(val x: Int) {
|
|||||||
// 1 INVOKESTATIC Foo\.empty-impl \(I\)V
|
// 1 INVOKESTATIC Foo\.empty-impl \(I\)V
|
||||||
// 1 INVOKESTATIC Foo\.withParam-impl \(ILjava/lang/String;\)V
|
// 1 INVOKESTATIC Foo\.withParam-impl \(ILjava/lang/String;\)V
|
||||||
// 1 INVOKESTATIC Foo\.withInlineClassParam-GWb7d6U \(II\)V
|
// 1 INVOKESTATIC Foo\.withInlineClassParam-GWb7d6U \(II\)V
|
||||||
// 5 INVOKEVIRTUAL
|
// 5 INVOKEVIRTUAL
|
||||||
|
// 2 INVOKEVIRTUAL java/lang/StringBuilder\.append \(Ljava/lang/String;\)Ljava/lang/StringBuilder;
|
||||||
|
// 1 INVOKEVIRTUAL java/lang/StringBuilder\.append \(I\)Ljava/lang/StringBuilder;
|
||||||
|
// 1 INVOKEVIRTUAL java/lang/StringBuilder.toString \(\)Ljava/lang/String;
|
||||||
|
// 1 INVOKEVIRTUAL Foo.unbox-impl \(\)I
|
||||||
+1
@@ -1,5 +1,6 @@
|
|||||||
// !LANGUAGE: +InlineClasses
|
// !LANGUAGE: +InlineClasses
|
||||||
// IGNORE_BACKEND: JVM_IR
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
// TODO KT-36783 Consider generating GETFIELD instructions instead of unbox-impl calls in special methods of inline classes in JVM_IR
|
||||||
|
|
||||||
inline class UInt(private val value: Int)
|
inline class UInt(private val value: Int)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user