class Foo() {
    fun Int.invoke() {}
}

fun bar(f: Foo, i: Int) {
    with (i) {
        f<caret>()
    }
}

fun <T, R> 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.<anonymous>(): Unit}
