Size: a a a

Kotlin Community

2020 October 18

AM

Andrew Mikhaylov in Kotlin Community
Anton Lakotka
А напомните, есть ли вообще современные языки с CE? на уме крутится только java
Свифт)
источник

I

Igor in Kotlin Community
Andrew Mikhaylov
Свифт)
Ну там более ограничено сделано, в режиме "есть исключения / нет исключения" без самих типов
источник

AL

Anton Lakotka in Kotlin Community
хмм, читаю их доку. и там оно выглядит еще более уныло чем в Java. ибо там просто "маркируется" метод, что он может бросить исключение.

т.е. получается небезопасно. ведь типы исключений неявные.
источник

AL

Anton Lakotka in Kotlin Community
Igor
Ну там более ограничено сделано, в режиме "есть исключения / нет исключения" без самих типов
а какой юзкейс тогда у такого флага?
источник

AM

Andrew Mikhaylov in Kotlin Community
Igor
Ну там более ограничено сделано, в режиме "есть исключения / нет исключения" без самих типов
Ну тем не менее они  формально checked.
источник

AM

Andrew Mikhaylov in Kotlin Community
Зато там catch более богатый — и деструктуризация, и условия, ух
источник

РО

Рулон Обоев... in Kotlin Community
а есть ли какой-нибудь ворнинг о том, что метод с runBlocking внутри используется из асинхронного кода?
источник

РО

Рулон Обоев... in Kotlin Community
неприятные залипания в рантайме уже бесят
источник

VU

Vadim Uzbekov in Kotlin Community
Рулон Обоев
неприятные залипания в рантайме уже бесят
может LiveData оч активно используете
источник

AK

Andrey Kuleshov in Kotlin Community
Рулон Обоев
а есть ли какой-нибудь ворнинг о том, что метод с runBlocking внутри используется из асинхронного кода?
О, клевая идея, надо будет добавить такой ворнинг к нам в ktlint/diktat. Причём делается достаточно просто даже чисто по AST.
Спасибо )

Тупо можно проверять, что внутри асинхронной корутины вызывается runBlocking
источник

РО

Рулон Обоев... in Kotlin Community
Vadim Uzbekov
может LiveData оч активно используете
не знаю что это, значит наверное не использую.

не, это именно какой-то архитектурный косяк на стороне нашего кода, в доке на runBlocking сказано, что не надо использовать изнутри асинхронных функций, но как бы, пока не зависнет, никто в вызываемую функцию не посмотрит
источник
2020 October 19

IP

Iaroslav Postovalov in Kotlin Community
Andrey Kuleshov
О, клевая идея, надо будет добавить такой ворнинг к нам в ktlint/diktat. Причём делается достаточно просто даже чисто по AST.
Спасибо )

Тупо можно проверять, что внутри асинхронной корутины вызывается runBlocking
ast? а почему не fir, который в компиляторе для семантики используется?
источник

(

( in Kotlin Community
Почему здесь нет ошибки?
источник

IP

Iaroslav Postovalov in Kotlin Community
(
Почему здесь нет ошибки?
а должна быть?
источник

(

( in Kotlin Community
Iaroslav Postovalov
а должна быть?
да
я приватный идентификатор (Interrupt) показываю инлайном
источник

IP

Iaroslav Postovalov in Kotlin Community
(
да
я приватный идентификатор (Interrupt) показываю инлайном
ну чекни байткод методов, куда ты это инлайнишь
источник

(

( in Kotlin Community
Iaroslav Postovalov
ну чекни байткод методов, куда ты это инлайнишь
Чекнул
Оно инлайнит этот самый идентификатор
источник

IP

Iaroslav Postovalov in Kotlin Community
если там реально юзается package private клаас, то ты сломал котлин
источник

IP

Iaroslav Postovalov in Kotlin Community
Iaroslav Postovalov
если там реально юзается package private клаас, то ты сломал котлин
окей, а какой модификатор доступа у класса?
источник

IP

Iaroslav Postovalov in Kotlin Community
package private?
источник