blob: 60baf728c2d6b5c8c17346ca7fb7a55bf829d0ac [file]
// See KT-7674
// 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 <T : Any> id(x: T): T {
log(x.toString())
return x
}
// FILE: main.kt
package foo
import kotlin.test.*
// CHECK_NOT_CALLED: buzz
fun <T> fizz(x: T): T {
log("fizz($x)")
return x
}
class A(val a: Int) {
val plus: (Int)->Int
get() {
log("get plus fun")
return {
log("do plus")
a + it
}
}
}
fun box(): String {
assertEquals(3, A(id(1)).plus(id(2)))
assertEquals("1;get plus fun;2;do plus;", pullLog())
return "OK"
}