JS test: added inline tests

This commit is contained in:
Alexey Tsvetkov
2014-09-29 16:00:18 +04:00
committed by Zalim Bashorov
parent 987708680f
commit 3f2d4b31be
112 changed files with 4442 additions and 0 deletions
@@ -0,0 +1,43 @@
package foo
// CHECK_CONTAINS_NO_CALLS: add
data class State(var count: Int = 0)
inline fun repeat(times: Int, action: () -> Unit) {
for (i in 1..times) {
action()
}
}
fun add(state: State, a: Int, b: Int): Int {
[inline] fun inc(a: Int): Int {
return a + 1
}
[inline] fun inc1(a: Int): Int {
return inc(a)
}
repeat(a) {
[inline] fun inc2(a: Int): Int {
return inc1(a)
}
repeat(b) {
[inline] fun State.inc() {
count = inc2(count)
}
state.inc()
}
}
return state.count
}
fun box(): String {
assertEquals(20, add(State(), 4, 5))
return "OK"
}