Files
kotlin/compiler/testData/codegen/box/ranges/forInCustomIterable.kt
Alexander Udalov 025360edc4 JVM IR: lookup symbols by name in ProgressionHandlers in known classes only
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.
2019-12-12 14:55:47 +03:00

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"
}