blob: 9ad4cfbd18603d465cc592a8959791be8f09f2a1 [file]
// FILE: lib.kt
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 max(a: Int, b: Int): Int {
log("max($a, $b)")
if (a > b) return a
return b
}
// FILE: main.kt
import kotlin.test.*
// CHECK_NOT_CALLED: buzz
// CHECK_NOT_CALLED_IN_SCOPE: function=max scope=box
fun <T> fizz(x: T): T {
log("fizz($x)")
return x
}
fun box(): String {
val test = max(fizz(1), max(fizz(2), buzz(3)))
assertEquals(3, test)
assertEquals("fizz(1);fizz(2);buzz(3);max(2, 3);max(1, 3);", pullLog())
return "OK"
}