package genericCrossinlineArgument interface A { fun expr(): Boolean } inline fun test1(t: T, crossinline formula: T.() -> Boolean) = object : A { override fun expr() = formula(t) } fun main(args: Array) { test1("aaa") { //Breakpoint! 1 + 1 > 0 }.expr() }