Files
kotlin/compiler/testData/codegen/boxInline/complex/forEachLine.kt
Ilya Matveev a5e4e0284e Mute some box tests for native backend
This patch mutes the following test categories:
   * Tests with java dependencies (System class,
     java stdlib, jvm-oriented annotations etc).
   * Coroutines tests.
   * Reflection tests.
   * Tests with an inheritance from the standard
     collections.
2017-03-10 19:59:37 +03:00

49 lines
858 B
Kotlin
Vendored

// IGNORE_BACKEND: NATIVE
// FILE: 1.kt
// WITH_RUNTIME
package test
public class Input(val s1: String, val s2: String) {
public fun iterator() : Iterator<String> {
return arrayListOf(s1, s2).iterator()
}
}
public inline fun <T, R> T.use(block: (T)-> R) : R {
return block(this)
}
public inline fun Input.forEachLine(block: (String) -> Unit): Unit {
useLines { lines -> lines.forEach(block) }
}
public inline fun Input.useLines(block2: (Iterator<String>) -> Unit): Unit {
this.use{ block2(it.iterator()) }
}
// FILE: 2.kt
import test.*
import java.util.*
fun sample(): Input {
return Input("Hello", "World");
}
fun testForEachLine() {
val list = ArrayList<String>()
val reader = sample()
reader.forEachLine{
list.add(it)
}
}
fun box(): String {
testForEachLine()
return "OK"
}