Size: a a a

Kotlin Community

2020 June 30

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
У котлина, кажется, не всё хорошо с осмысленностью сравнения enum'ов
енумы тут вообще не при чем.
источник

AN

Alexander Nozik in Kotlin Community
Там мог бы быть любой объект
источник

VP

Vladimir Petrakovich in Kotlin Community
Ну здесь, пожалуй, да
Но в when точно какой-то прикол был
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Проблему-то я увидел, не увидел, почему оно вообще работает
А работает потому что (bool ?: enum) - это Any, который можно сравнивать с чем угодно
источник

a

azazellj in Kotlin Community
источник

a

azazellj in Kotlin Community
getFirst(second) = true
getFirst(second, true) = true
getSecond(second) = true
getSecond(second, true) = false
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
А работает потому что (bool ?: enum) - это Any, который можно сравнивать с чем угодно
да, но там могло бы быть что угодно, не обязательно енум
источник

a

azazellj in Kotlin Community
для enum

private final boolean getSecond(NUMBER var1, Boolean var2) {
     Object var10000 = var2;
     if (var2 == null) {
        var10000 = var1;
     }

     return var10000 == NUMBER.SECOND;
}  


для string

private final boolean getSecond(String str, Boolean var2) {
     Object var10000 = var2;
     if (var2 == null) {
        var10000 = str;
     }

     return Intrinsics.areEqual(var10000, "STR");
  }
источник

AN

Alexander Nozik in Kotlin Community
Ну все честно, у элвиса приоритет выше, чем у сравнения. В принципе, надо бы сделать инспекцию по поводу сравнения типизированного объекта с Any если ее нет
источник

a

azazellj in Kotlin Community
Ну то ясно.
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
да, но там могло бы быть что угодно, не обязательно енум
Мне просто вспомнилось вот это или что-то похожее
https://youtrack.jetbrains.com/issue/KT-22043
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Мне просто вспомнилось вот это или что-то похожее
https://youtrack.jetbrains.com/issue/KT-22043
Ну оно должно наверное пофиксить, но только для енумов, для остального будет то же самое
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Ну оно должно наверное пофиксить, но только для енумов, для остального будет то же самое
Да, согласен, не тот случай
источник

AN

Alexander Nozik in Kotlin Community
Вообще вроде была такая инспекция...
источник

VP

Vladimir Petrakovich in Kotlin Community
Ну правило "не уверен - ставь скобки" никто не отменял 😄
источник

AN

Alexander Nozik in Kotlin Community
не, не ругается
источник

IO

Iaroslav Orlov in Kotlin Community
Alexander Levin
Нету вопроса наверное, человек второй раз паззлеры в канал закидывает :D
я бы не сказал, что это паззлеры
источник

IO

Iaroslav Orlov in Kotlin Community
в нормальных паззлерах меньше шума.
источник

AN

Alexander Nozik in Kotlin Community
Iaroslav Orlov
в нормальных паззлерах меньше шума.
так  в этом весь смысл - внимание отвлечь
источник

IO

Iaroslav Orlov in Kotlin Community
это понятно, но тут во-первых нет каких-то странных фич языка, во-вторых много кода, лень 10 минут всматриваться
источник