Size: a a a

Kotlin Community

2020 January 24

BV

Boris Vanin in Kotlin Community
Alexander Nozik
Ну лично мне порядок пофигу. Сделать мультиресиверы без порядка вроде не сложно.
Я к тому, что если сейчас написать А { B.f() }, то если контекст будет B { A {} }, то работать не будет
источник

AN

Alexander Nozik in Kotlin Community
Oleg Yukhnevich
И это поломает мемберы получается или будет разное поведение для мемберов  и для мульти
Думаю ни того, ни того не хотят
Не поломает ничего. Там просто начнут работать выражения, которые до этого не работали
источник

OY

Oleg Yukhnevich in Kotlin Community
Alexander Nozik
Не поломает ничего. Там просто начнут работать выражения, которые до этого не работали
Так это и ломает, нет?
источник

OY

Oleg Yukhnevich in Kotlin Community
У тебя начинает код по-другому работать
источник

OY

Oleg Yukhnevich in Kotlin Community
А если там в тот момент были другие экстеншены
источник

AN

Alexander Nozik in Kotlin Community
Нет. Старый код будет работать как раньше
источник

OY

Oleg Yukhnevich in Kotlin Community
Вроде даже где-то такой пример приводили
источник

OY

Oleg Yukhnevich in Kotlin Community
В дороге сейчас, так что не найду, не покажу
источник

AN

Alexander Nozik in Kotlin Community
Ну если придумаете пример, пишите в кип. Пока ничего ломающего не прилумали
источник

BV

Boris Vanin in Kotlin Community
Alexander Nozik
Не поломает ничего. Там просто начнут работать выражения, которые до этого не работали
Могут быть какие-то корнер кейзы
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
Могут быть какие-то корнер кейзы
Могут, но пока никто не поидумал
источник

BV

Boris Vanin in Kotlin Community
Alexander Nozik
Ну если придумаете пример, пишите в кип. Пока ничего ломающего не прилумали
Это хорошо, а то очень хочется эту фичу
источник

AN

Alexander Nozik in Kotlin Community
Ну так надо думать и писать корнер кейсы в кип. И вообще соображения.
источник

BV

Boris Vanin in Kotlin Community
Хотя и понятно, что вероятность появления экспериментальной версии не раньше 1.6, всё равно хочется
источник

AN

Alexander Nozik in Kotlin Community
Пока единственное принципиальное отличие в том, что заработает перестановка мембера и функционального ресивера. Сейчас надо руками with дописывать.
источник

SB

Sergey Barmin in Kotlin Community
Boris Vanin
Я к тому, что если сейчас написать А { B.f() }, то если контекст будет B { A {} }, то работать не будет
вроде работает, или не так понял?
источник

BV

Boris Vanin in Kotlin Community
Sergey Barmin
вроде работает, или не так понял?
Ну так в первом случае рессивер пришлось указать явно
источник

SB

Sergey Barmin in Kotlin Community
а как иначе обратиться к первому ресиверу?
источник

OY

Oleg Yukhnevich in Kotlin Community

object A {
fun B.ext()= Unit
}
object B

fun A.ext() = Unit
fun main(){

with(A) {
B.ext()
}
with(B) {
A.ext()
}
}

Такой код по идее перестанет работать если убрать порядок, не?
источник

OY

Oleg Yukhnevich in Kotlin Community
источник