class Foo() { fun Int.invoke() {} } fun bar(f: Foo, i: Int) { with (i) { f() } } fun with(receiver: T, f: T.() -> R) : R = throw Exception() Resolved call: Resulting descriptor: fun Int.invoke(): Unit Explicit receiver kind = THIS_OBJECT This object = f {Foo} Receiver argument = IntExt{fun Int.(): Unit}