JVM_IR. Minor. Update bytecode text test to JVM_IR or create issues when this

is not feasible.
This commit is contained in:
Ilmir Usmanov
2020-02-17 18:29:30 +01:00
parent 4b954c347a
commit c748b6f3ee
7 changed files with 34 additions and 7 deletions
@@ -1,3 +1,4 @@
// This test is ignored until KT-36794 is fixed
// IGNORE_BACKEND: JVM
// IGNORE_BACKEND: JVM_IR
// KOTLIN_CONFIGURATION_FLAGS: ASSERTIONS_MODE=jvm
@@ -1,3 +1,4 @@
// This test is ignored until KT-36794 is fixed.
// IGNORE_BACKEND: JVM
// IGNORE_BACKEND: JVM_IR
// KOTLIN_CONFIGURATION_FLAGS: ASSERTIONS_MODE=jvm
@@ -14,8 +14,12 @@ fun main(args: Array<String>) {
@BuilderInference
suspend fun SequenceScope<Int>.awaitSeq(): Int = 42
// 1 LOCALVARIABLE a I L17 L.* 3
// 1 LINENUMBER 8 L17
// Adding ignore flags below the test since the test relies on line numbers.
// IGNORE_BACKEND: JVM_IR
// label numbers differ in BEs
// JVM_TEMPLATES
// 1 LOCALVARIABLE a I L17 L.*
// 1 LINENUMBER 8 L17
// JVM_IR_TEMPLATES
// 1 LOCALVARIABLE a I L14 L.*
// 1 LINENUMBER 8 L14
@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
suspend fun dummy() {}
val c: suspend () -> Unit = {
@@ -13,6 +12,10 @@ class A {
}
}
// BEs generate continuation classes differently, JVM_IR generates more correctly
// JVM_TEMPLATES
// invokeSuspend
// 1 LOCALVARIABLE this LThisAndResultInLvtKt\$c\$1; L0 L.* 0
// c's lambda and foo's continuation
// 2 LOCALVARIABLE \$result Ljava/lang/Object; L0 L.* 1
@@ -23,3 +26,17 @@ class A {
// 1 LOCALVARIABLE s Ljava/lang/String; L0 L.* 2
// 1 LOCALVARIABLE block Lkotlin/jvm/functions/Function2; L0 L.* 3
// 1 LOCALVARIABLE \$continuation Lkotlin/coroutines/Continuation; L2 L.* 6
// JVM_IR_TEMPLATES
// <init>, invoke, invokeSuspend, create
// 4 LOCALVARIABLE this LThisAndResultInLvtKt\$c\$1; L0 L.* 0
// TODO: Continuation are generated even for tail-call suspend functions: KT-36795
// c's lambda and foo's and dummy's continuation
// 3 LOCALVARIABLE \$result Ljava/lang/Object; L0 L.* 1
// foo and <init>
// 2 LOCALVARIABLE this LA; L0 L.* 0
// 1 LOCALVARIABLE a LA; L0 L.* 1
// 1 LOCALVARIABLE s Ljava/lang/String; L0 L.* 2
// 1 LOCALVARIABLE block Lkotlin/jvm/functions/Function2; L0 L.* 3
// 1 LOCALVARIABLE \$continuation Lkotlin/coroutines/Continuation; L2 L.* 6
@@ -1,3 +1,5 @@
// This test checks, that different variables occupy the same slot
// In JVM_IR, however, loop variable's lifetime goes beyond the loop itself, thus the test has no sense in JVM_IR
// IGNORE_BACKEND: JVM_IR
// WITH_COROUTINES
@@ -1,3 +1,5 @@
// This test checks, that different variables occupy the same slot
// In JVM_IR, however, loop variable's lifetime goes beyond the loop itself, thus the test has no sense in JVM_IR
// IGNORE_BACKEND: JVM_IR
// WITH_COROUTINES
@@ -1,6 +1,6 @@
// $$forInline suffix is not needed: KT-36797
// JVM_IR generates fake inliner variable with suffix $$forInline, when old BE does not do this
// IGNORE_BACKEND: JVM_IR
// In JVM_IR $i$f variables occupy different slots
interface ApplicationCall
interface AuthenticationService {