fun coroutine(block: suspend () -> Unit) {} class SIter { operator fun iterator() = this suspend operator fun hasNext(): Boolean = false suspend operator fun next(): Int = 0 suspend fun test() {} } fun foo() { val iter = SIter() coroutine { iter.test() // this line is marked (LINE1) for (x in iter) // this line is not (LINE2) println(x) } }