Size: a a a

ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)

2020 January 21

DM

Daniel Matveev in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Nikita Vilunov
что плохого во флоу тайпинге?
у меня сложилось впечатление (я совсем чуть чуть смотрел), что это очень частный случай
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Ну тут сложно, @alexknvl нравится флоутайпинг
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Тем более, что для нулла теперь в дотти есть флоутайпинг
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
ᛒᚨᚱᛏᛟᛋᛋᛟ
опаки не саморекурсивные
Ну так то рекурсивных опаков всего есть штук 10 используемых
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Несложно их и на энирефах захерачить по старинке, но в среднем кажется недоработкой
источник

(

( in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Nikita Vilunov
что плохого во флоу тайпинге?
В том, что флоу-тайпинг - это неполная формализация и будет куча корнер-кейсов, когда он не сможет вывести тип правильно
источник

(

( in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
И чтобы это фиксить, котлин дизайнеры придумали контракты
источник

(

( in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Ну, это в котлине по-крайней мере, я хз, в других язык флоу тайпинг мб лучше
источник

(

( in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Ну и это не говоря о том, что в котлине вообще инференс слабый
источник

NV

Nikita Vilunov in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
(
В том, что флоу-тайпинг - это неполная формализация и будет куча корнер-кейсов, когда он не сможет вывести тип правильно
если это не приводит к unsoundness, то какая разница?
источник

(

( in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Nikita Vilunov
если это не приводит к unsoundness, то какая разница?
Приводит
источник

(

( in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Вот гляди
источник

(

( in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
val a = listOf(1)
a as MutableList // не крашнется
a.add(1) // крашнется с NotImplementedException
источник

(

( in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Пушто listOf с одним аргументом под капотом создаёт SingletonList и ансейф каст успешно проходит, после которого этот лист выводится как мутабельный
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
(
val a = listOf(1)
a as MutableList // не крашнется
a.add(1) // крашнется с NotImplementedException
это верно для скалы и хаскеля
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
хотя ладно, упадёт на самом касте
источник

Oℕ

Oleg ℕizhnik in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
но не то, чтобы фундаментальная штука
источник

NV

Nikita Vilunov in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
(
Пушто listOf с одним аргументом под капотом создаёт SingletonList и ансейф каст успешно проходит, после которого этот лист выводится как мутабельный
Почему SingletonList является подтипом MutableList?
источник

NV

Nikita Vilunov in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Не похоже на ошибку флоу тайпинга
источник

(

( in ПОКА ОДЕРСКИ НЕ ВИДИТ (как мы разрешаем котикам срать)
Nikita Vilunov
Почему SingletonList является подтипом MutableList?
А я кстати хуй его знает, возможно ты прав
источник