Я пытаюсь выяснить, как сослаться на this
внутри блока with
.
inline fun A.foo(bar: B, crossinline block: B.() -> Unit) {
with (bar) {
this@A.doSomething() // compile error, "unresolved reference @A"
block()
}
}
Вот мой обходной путь:
inline fun A.foo(bar: B, crossinline block: B.() -> Unit) {
val self = this
with (bar) {
self.doSomething() // okay, but ugly
block()
}
}
Есть ли лучший способ, и почему это не работает?