fun main(args: Array) { with(A()) { val i = prop println(i) println(i) } } class A { val prop = 1 } public inline fun with(receiver: T, f: T.() -> R): R = receiver.f()