35 lines
725 B
Kotlin
Vendored
35 lines
725 B
Kotlin
Vendored
// EXPECTED_REACHABLE_NODES: 1376
|
|
package foo
|
|
|
|
class SimpleEnumerator {
|
|
private var counter = 0
|
|
|
|
fun getNext(): String {
|
|
counter++;
|
|
return counter.toString()
|
|
}
|
|
|
|
fun hasMoreElements(): Boolean = counter < 1
|
|
}
|
|
|
|
class SimpleEnumeratorWrapper(private val enumerator: SimpleEnumerator) {
|
|
operator fun hasNext(): Boolean = enumerator.hasMoreElements()
|
|
|
|
operator fun next() = enumerator.getNext()
|
|
}
|
|
|
|
operator fun SimpleEnumerator.iterator(): SimpleEnumeratorWrapper {
|
|
return SimpleEnumeratorWrapper(this)
|
|
}
|
|
|
|
fun box(): String {
|
|
var o = ""
|
|
val enumerator = SimpleEnumerator()
|
|
for (s in enumerator) {
|
|
o += s;
|
|
}
|
|
|
|
if (o != "1") return "fail: $o"
|
|
|
|
return "OK"
|
|
} |