blob: 5bcda2c31b2bc99f435e45c6a12c7872937c341c [file]
// NO_CHECK_LAMBDA_INLINING
// FILE: lib.kt
package foo
import kotlin.test.*
// CHECK_FUNCTION_EXISTS: runNoinline
// CHECK_NOT_CALLED: runNoinline
internal inline fun multiply(a: Int, b: Int) = a * b
internal inline fun run(a: Int, b: Int, func: (Int, Int) -> Int) = func(a, b)
internal inline fun runNoinline(a: Int, b: Int, noinline func: (Int, Int) -> Int) = func(a, b)
// FILE: main.kt
package foo
import kotlin.test.*
internal fun multiplyInline(a: Int, b: Int) = run(a, b, ::multiply)
// CHECK_FUNCTION_EXISTS: runNoinline
// CHECK_NOT_CALLED: runNoinline
internal fun multiplyNoinline(a: Int, b: Int) = runNoinline(a, b, ::multiply)
fun box(): String {
assertEquals(6, multiplyInline(2, 3))
assertEquals(6, multiplyNoinline(2, 3))
return "OK"
}