blob: 65c95fb653f8e6bdcf199d66538049231f68dbd3 [file]
// FILE: lib.kt
package foo
// CHECK_CONTAINS_NO_CALLS: multiplyNoInline except=imul
internal inline fun multiply(a: Int, b: Int): Int {
return a * b
}
// FILE: main.kt
package foo
import kotlin.test.*
// CHECK_CONTAINS_NO_CALLS: multiplyNoInline except=imul
internal fun multiplyNoInline(a: Int, b: Int): Int {
var c = a - 1
var d = b - 1
return (c++) + (d++) + multiply(c, d) - (--c + --d)
}
// CHECK_BREAKS_COUNT: function=box count=0
// CHECK_LABELS_COUNT: function=box name=$l$block count=0
fun box(): String {
assertEquals(0, multiplyNoInline(1, 0))
assertEquals(1, multiplyNoInline(1, 1))
assertEquals(2, multiplyNoInline(1, 2))
assertEquals(6, multiplyNoInline(2, 3))
return "OK"
}