mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-11 00:21:29 +00:00
Alternatively, we could improve the lookup utilities and their usages to always find the exact override of a symbol from Collection/Iterable/CharSequence/etc, but since we need to load the original symbol anyway in cases when the loop subject's type is a type parameter, we might as well simplify everything and always reference the original symbol. Also improve exception message and removed unused declarations in IrBackendUtils.kt.
21 lines
493 B
Kotlin
Vendored
21 lines
493 B
Kotlin
Vendored
// IGNORE_BACKEND_FIR: JVM_IR
|
|
// WITH_RUNTIME
|
|
// KJS_WITH_FULL_RUNTIME
|
|
|
|
class C : Iterable<String> {
|
|
// Unused declaration, which is here only to confuse the backend who might lookup symbols by name
|
|
private fun List<Int>.iterator(): Double = size.toDouble()
|
|
|
|
override fun iterator(): Iterator<String> = listOf("OK").iterator()
|
|
}
|
|
|
|
fun box(): String {
|
|
val c = C()
|
|
for ((i, x) in c.withIndex()) {
|
|
if (i == 0) {
|
|
return x
|
|
}
|
|
}
|
|
return "Fail"
|
|
}
|