Test framework for inline

This commit is contained in:
Mikhael Bogdanov
2014-02-18 12:14:06 +04:00
parent 769b07fbc8
commit 4f5b20a8db
93 changed files with 2593 additions and 8 deletions
@@ -0,0 +1,23 @@
import test.*
import java.util.*
fun sample(): Input {
return Input("Hello", "World");
}
test fun testForEachLine() {
val list = ArrayList<String>()
val reader = sample()
reader.forEachLine{
list.add(it)
}
}
fun box(): String {
testForEachLine()
return "OK"
}
@@ -0,0 +1,20 @@
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()) }
}