class Foo() { fun Int.invoke() {} } fun bar(f: Foo, i: Int) { with (i) { f() } } Resolved call: Resulting descriptor: fun Int.invoke(): Unit defined in Foo Explicit receiver kind = DISPATCH_RECEIVER Dispatch receiver = f {Foo} Extension receiver = IntExt{fun Int.(): Unit defined in bar}