inline fun callsInPlaceInline(x: () -> Unit) = x() inline fun any(x: T) = x inline fun noinline(noinline x: () -> Unit) = x inline fun crossinline(crossinline x: () -> Unit) = { x() } fun testInline() { var x: String? = null callsInPlaceInline { x = null } x = "" x.length // ok } fun testGeneric() { var x: String? = "" val lambda = any { x = null } x = "" lambda() x.length // bad } fun testNoinline() { var x: String? = "" val lambda = noinline { x = null } x = "" lambda() x.length // bad } fun testCrossinline() { var x: String? = "" val lambda = crossinline { x = null } x = "" lambda() x.length // bad }