Size: a a a

2019 February 27

EZ

Evgeny Zaharov in Kotlin Moscow
может быть =) повторюсь, что с остальными я не встретил, но должно быть да, они влияют
источник

EZ

Evgeny Zaharov in Kotlin Moscow
попробуйте декомплировать корутины)
источник

I

Ilmir in Kotlin Moscow
На самом деле это баг в UI. Эта галочка должна быть недоступна в не internal-mode.
источник

АД

Андрей Данилов in Kotlin Moscow
Evgeny Zaharov
попробуйте декомплировать корутины)
Вроде был какой-то флаг шоб можно было, но я не проверял
источник

I

Ilmir in Kotlin Moscow
Evgeny Zaharov
попробуйте декомплировать корутины)
Единственная проблема только с suspend lambdas. Код с suspend functions декомпилируется, но, разумеется, генерируется невалидный джава код.
источник

АД

Андрей Данилов in Kotlin Moscow
Evgeny Zaharov
попробуйте декомплировать корутины)
Технически никакой магии в корутинах все равно нет
источник

EZ

Evgeny Zaharov in Kotlin Moscow
нету, но там есть goto
источник

АД

Андрей Данилов in Kotlin Moscow
До метки, да
источник

EZ

Evgeny Zaharov in Kotlin Moscow
Ilmir
Единственная проблема только с suspend lambdas. Код с suspend functions декомпилируется, но, разумеется, генерируется невалидный джава код.
последний раз когда пробовал были проблемы с декомпиляцией, правда на EAP пробовал, хорошо раз работает
источник

I

Ilmir in Kotlin Moscow
Evgeny Zaharov
нету, но там есть goto
В JS goto тоже нет, но там также есть корутины. По сути там все равно генерируется switch c однообразными if-then-else в каждой ветке.
источник

I

Ilmir in Kotlin Moscow
Типа такого:
      switch(((<undefinedtype>)$continuation).label) {
     case 0:
        if (var1 instanceof Failure) {
           throw ((Failure)var1).exception;
        }

        ((<undefinedtype>)$continuation).label = 1;
        if (foo((Continuation)$continuation) == var3) {
           return var3;
        }
        break;
     case 1:
        if (var1 instanceof Failure) {
           throw ((Failure)var1).exception;
        }
        break;
     case 2:
        if (var1 instanceof Failure) {
           throw ((Failure)var1).exception;
        }

        var10000 = var1;
        return var10000;
     default:
        throw new IllegalStateException("call to 'resume' before 'invoke' with coroutine");
     }
источник

EZ

Evgeny Zaharov in Kotlin Moscow
это хорошо, Вы хотите чтобы я добавил  в презентацию?)
источник

EZ

Evgeny Zaharov in Kotlin Moscow
про корутины на прошлом митапе подробно рассказали
источник

EZ

Evgeny Zaharov in Kotlin Moscow
и про них много написано, в том числе и в https://habr.com/ru/company/inforion/blog/330064/ есть пример в конце что я писал
источник

EZ

Evgeny Zaharov in Kotlin Moscow
с описанием
источник

I

Ilmir in Kotlin Moscow
Evgeny Zaharov
про корутины на прошлом митапе подробно рассказали
Спасибо за тёплые слова!
источник

I

Ilmir in Kotlin Moscow
Evgeny Zaharov
это хорошо, Вы хотите чтобы я добавил  в презентацию?)
Всего лишь уберите галочку IR. Она запускает новый бекенд, который нестабильный, так как находится в активной разработке. Поэтому доверять байткоду, сгенерированному с его помощью, нельзя.
источник

EZ

Evgeny Zaharov in Kotlin Moscow
Спасибо за пояснение!) сегодня вечером подправлю слайды
источник

I

Ilmir in Kotlin Moscow
Спасибо!
источник

EZ

Evgeny Zaharov in Kotlin Moscow
а Вы случаем не знаете, можно ли как-нибудь заставить просмоторщик учитывать выставленные флаги компилятора в gradle? Отключение intrinsics и т.п.?
источник