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
+27
View File
@@ -0,0 +1,27 @@
// IGNORE_BACKEND: JVM
// DONT_TARGET_EXACT_BACKEND: WASM
// WASM_MUTE_REASON: UNKNOWN
// WITH_RUNTIME
interface Runnable {
fun run()
}
class AnonymousClassInLambda {
fun run(): Int {
var x = 0
val threads = (1..10).map {
object : Runnable {
override fun run() {
x++
}
}
}
threads.forEach { it.run() }
return x
}
}
fun box(): String {
return if (AnonymousClassInLambda().run() == 10) "OK" else "Fail"
}
+20
View File
@@ -0,0 +1,20 @@
// IGNORE_BACKEND: JVM
// WITH_RUNTIME
class X {
val num = 42
val map: Int = 1.apply {
object : Y({ true }) {
override fun fun1() {
println(num)
}
}
}
}
abstract class Y(val lambda: () -> Boolean) {
abstract fun fun1()
}
fun box(): String =
if (X().map == 1) "OK" else "Fail"