class A {
    fun B.foo() {}
}

trait B

fun bar(a: A, b: B) {
    with (a) {
        with (b) {
            <caret>foo()
        }
    }
}

fun <T, R> with(receiver: T, f: T.() -> R) : R = receiver.f()


Resolved call:

Resulting descriptor: fun B.foo(): Unit

Explicit receiver kind = NO_EXPLICIT_RECEIVER
This object = AExt{fun A.<anonymous>(): Unit}
Receiver argument = BExt{fun B.<anonymous>(): Unit}
