KT-13241 Indices optimization leads to VerifyError with smart cast receiver
Use expected receiver type from the corresponding extension function.
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
fun test(x: Any): Int {
|
||||
var sum = 0
|
||||
if (x is IntArray) {
|
||||
for (i in x.indices) {
|
||||
sum = sum * 10 + i
|
||||
}
|
||||
}
|
||||
return sum
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(123, test(intArrayOf(0, 0, 0, 0)))
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
fun test(x: Any): Int {
|
||||
var sum = 0
|
||||
if (x is String) {
|
||||
for (i in x.indices) {
|
||||
sum = sum * 10 + i
|
||||
}
|
||||
}
|
||||
return sum
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(123, test("0000"))
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// WITH_RUNTIME
|
||||
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
fun test(x: Any): Int {
|
||||
var sum = 0
|
||||
if (x is List<*>) {
|
||||
for (i in x.indices) {
|
||||
sum = sum * 10 + i
|
||||
}
|
||||
}
|
||||
return sum
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
assertEquals(123, test(listOf(0, 0, 0, 0)))
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user