| // 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" | |
| } |