blob: 88dfe43e2fd40cb7232ed3ee0f0455c9068d69cd [file]
// FILE: lib.kt
package foo
import kotlin.test.*
inline fun <T> buzz(x: T): T {
log("buzz($x)")
return x
}
// CHECK_NOT_CALLED: buzz
private var LOG = ""
fun log(string: String) {
LOG += "$string;"
}
fun pullLog(): String {
val string = LOG
LOG = ""
return string
}
inline
fun multiplyFunInline(): (Int, Int)->Int {
log("multiplyFunInline()")
return { x, y -> x * y }
}
// FILE: main.kt
package foo
import kotlin.test.*
// CHECK_NOT_CALLED: buzz
fun <T> fizz(x: T): T {
log("fizz($x)")
return x
}
// CHECK_NOT_CALLED: multiplyFunInline
fun multiplyFun(): (Int, Int)->Int {
log("multiplyFun()")
return { x, y -> x * y }
}
fun box(): String {
assertEquals(6, arrayOf(multiplyFun(), multiplyFunInline())[0](fizz(2), fizz(3)))
assertEquals("multiplyFun();multiplyFunInline();fizz(2);fizz(3);", pullLog())
return "OK"
}