KT-55005 Do not generate CHECKCAST before AASTORE

This commit is contained in:
Pavel Mikhailovskii
2022-12-21 15:06:07 +00:00
committed by Space Team
parent d26b96afe1
commit 06d3e1d8bd
9 changed files with 70 additions and 19 deletions
+27
View File
@@ -0,0 +1,27 @@
// TARGET_BACKEND: JVM_IR
// CHECK_BYTECODE_TEXT
// WITH_STDLIB
import kotlin.test.*
inline fun <reified T> foo(x: Any) = arrayOf<T>(x as T)
fun box(): String {
val a: Array<String> = arrayOf("")
assertFailsWith<ArrayStoreException> {
(a as Array<Any>)[0] = Any()
}
assertFailsWith<ArrayStoreException> {
(a as Array<Any>)[0] = 1
}
assertFailsWith<ArrayStoreException> {
(a as Array<CharSequence>)[0] = StringBuilder()
}
assertFailsWith<ArrayStoreException> {
foo<String>(Any())
}
return "OK"
}
// 0 CHECKCAST