class Foo { fun doSmthng(arg: T) {} var a: T? = null } fun myBuilder(block: Foo.() -> Unit) : Foo = Foo().apply(block) fun main(arg: Any) { val x = 57 val value = myBuilder { doSmthng("one ") run { a; this }.a = 10 a += 1 this.a = 57 this.(a) = 57 a = x (a) = x a.hashCode = 99 if (arg is String) { a = arg } } println(value.a?.count { it in 'l' .. 'q' }) }