Files
kotlin-fork/js/js.translator/testData/box/inline/inlineLambdaNoCapture.kt
T
2022-04-11 10:37:21 +00:00

31 lines
849 B
Kotlin
Vendored

// EXPECTED_REACHABLE_NODES: 1283
package foo
// CHECK_CONTAINS_NO_CALLS: sumEven
internal inline fun filteredReduce(a: Array<Int>, predicate: (Int) -> Boolean, reduceFun: (Int, Int) -> Int): Int {
var result = 0
for (element in a) {
val satisfyPred = predicate(element)
if (satisfyPred) {
result = reduceFun(result, element)
}
}
return result
}
// CHECK_BREAKS_COUNT: function=sumEven count=0 TARGET_BACKENDS=JS_IR
// CHECK_LABELS_COUNT: function=sumEven name=$l$block count=0 TARGET_BACKENDS=JS_IR
internal fun sumEven(a: Array<Int>): Int {
return filteredReduce(a, { x -> x % 2 == 0}, { x, y -> x + y})
}
fun box(): String {
assertEquals(0, sumEven(arrayOf()))
assertEquals(6, sumEven(arrayOf(1,2,3,4)))
assertEquals(12, sumEven(arrayOf(1,2,3,4,6,7,9)))
return "OK"
}