Add regression tests for obsolete issues

#KT-9304
 #KT-14961
 #KT-16549
 #KT-21080
 #KT-28234
 #KT-30102
 #KT-31994
 #KT-34291
 #KT-38099
 #KT-41174
 #KT-44622
 #KT-44701
 #KT-44781
 #KT-44849
 #KT-44978
 #KT-45081
 #KT-45286
 #KT-45383
 #KT-45444
 #KT-45907
This commit is contained in:
Alexander Udalov
2021-02-11 14:51:55 +01:00
parent 2666a93e6a
commit 21e9bd7ea2
41 changed files with 1150 additions and 0 deletions
@@ -0,0 +1,14 @@
// TARGET_BACKEND: JVM
// WITH_RUNTIME
// FULL_JDK
// FILE: 1.kt
inline fun foo(crossinline init: (String) -> String): String =
listOf("OK").stream().map { init(it) }.findFirst().get()
inline fun bar(crossinline init: (String) -> String): String =
foo { foo(init) }
// FILE: 2.kt
fun box(): String = bar { it }
@@ -0,0 +1,16 @@
// IGNORE_BACKEND: JVM
// IGNORE_BACKEND_MULTI_MODULE: JVM, JVM_MULTI_MODULE_OLD_AGAINST_IR
// IGNORE_BACKEND_FIR: JVM_IR
// NO_CHECK_LAMBDA_INLINING
// FILE: 1.kt
inline fun foo(f: () -> Unit) {
f()
}
// FILE: 2.kt
fun box(): String = (bar@ l@ fun(): String {
foo { return@bar "OK" }
return "fail"
}) ()
+28
View File
@@ -0,0 +1,28 @@
// IGNORE_BACKEND: JVM
// IGNORE_BACKEND_MULTI_MODULE: JVM, JVM_MULTI_MODULE_OLD_AGAINST_IR
// NO_CHECK_LAMBDA_INLINING
// FILE: 1.kt
package test
class M(size: Int) {
val m = IntArray(size) { 0 }
}
inline operator fun M.get(a: Any, b: Any, ifn: () -> Int) =
m[ifn()]
inline operator fun <reified T> M.set(a: T, b: Any, ifn: () -> Int, v: Int) {
if (b !is T) throw AssertionError()
m[ifn()] = v
}
// FILE: 2.kt
import test.*
fun box(): String {
val m = M(4)
m["a", "b", { 1 }] += 10
return if (m.m[1] == 10) "OK" else "Fail"
}