Files
kotlin-fork/compiler/testData/ir/irText/lambdas/multipleImplicitReceivers.kt.txt
T
Dmitriy Novozhilov b454fcc1e0 [FIR] Save IR dumps to .ir.txt files instead of .txt in tests
This is needed to avoid clashes between different dumps from different
  handlers
2021-10-12 17:26:36 +03:00

46 lines
767 B
Kotlin
Vendored

object A {
private constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
object B {
private constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
interface IFoo {
val A.foo: B
get(): B {
return B
}
}
interface IInvoke {
operator fun B.invoke(): Int {
return 42
}
}
fun test(fooImpl: IFoo, invokeImpl: IInvoke) {
with<A, Int>(receiver = A, block = local fun A.<anonymous>(): Int {
return with<IFoo, Int>(receiver = fooImpl, block = local fun IFoo.<anonymous>(): Int {
return with<IInvoke, Int>(receiver = invokeImpl, block = local fun IInvoke.<anonymous>(): Int {
return ($this$with, ($this$with, $this$with).<get-foo>()).invoke()
}
)
}
)
}
) /*~> Unit */
}