Add tests for issues fixed in JVM IR

Note that KT-30696 is fixed only in the single-module case, and KT-42012
is not fixed fully (see KT-44855).

 #KT-30041
 #KT-30629
 #KT-30696
 #KT-30933
 #KT-32351
 #KT-32749
 #KT-38849
 #KT-42012
 #KT-42990
 #KT-44234
 #KT-44529
 #KT-44631
 #KT-44647
This commit is contained in:
Alexander Udalov
2021-02-03 15:03:30 +01:00
parent 17fc10a8af
commit 73aa465ee9
31 changed files with 826 additions and 0 deletions
@@ -0,0 +1,27 @@
// !USE_EXPERIMENTAL: kotlin.contracts.ExperimentalContracts
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
// KT-38849
import kotlin.contracts.*
fun block(lambda: () -> Unit) {
contract {
callsInPlace(lambda, InvocationKind.EXACTLY_ONCE)
}
lambda()
}
fun box(): String {
val list: List<Int>
block {
list = listOf(1, 2, 3)
}
block {
if (listOf(2, 3, 4).first { list.contains(it) } != 2) throw AssertionError("Fail")
}
return "OK"
}