Size: a a a

2021 September 25

AH

Ayrat Hudaygulov in Kotlin JS
renderToString возвращает строку которая неявно выкидывается т.к. нет return
источник

BP

Bogdan Panchenko in Kotlin JS
Только явного ретурна не нужно
источник

AH

Ayrat Hudaygulov in Kotlin JS
в блоке { } нужно
источник

AH

Ayrat Hudaygulov in Kotlin JS
в этом и была моя "нубская" ошибка
источник

BP

Bogdan Panchenko in Kotlin JS
Я про юнит
источник

BP

Bogdan Panchenko in Kotlin JS
В фи шарпе тоже самое, я так делал
источник

BP

Bogdan Panchenko in Kotlin JS
Скобки просто "возвращают" void
источник

AH

Ayrat Hudaygulov in Kotlin JS
там ретурны только в CE
Но любая функция значение которой отлично от unit и оно не игнорируется явно - варнинг
источник

AH

Ayrat Hudaygulov in Kotlin JS
вот так можно

let _ = returnString()

так можно
returnString() |> ignore

так нельзя

returnString()
источник

BP

Bogdan Panchenko in Kotlin JS
Ну это нужно начинать с основ что такое фигурные скобки) ниразу с ними проблем не было
источник

AH

Ayrat Hudaygulov in Kotlin JS
ну, как видишь, не я один слепой и не увидел разницы
источник

AL

Alexander Levin in Kotlin JS
Ворнинг действительно было бы неплохо иметь.

С результатом функции нету проблем (да, не написали тип = Unit), но есть проблема, что renderToString вызывается, из него возвращается не Unit, но никак не используется

Да, есть нюанс, что непонятно иногда как определять условно чистые функции (где возвращаемый результат важнее) от грязных (где сайд эффект важнее будет), но всё же, проблема с точки зрения IDE есть
источник

BP

Bogdan Panchenko in Kotlin JS
Ну в классах я так делал...
источник

BP

Bogdan Panchenko in Kotlin JS
Ворнингов не было,  да и вообще их мало было
источник

BP

Bogdan Panchenko in Kotlin JS
Вот последний абзац и есть заковырка, всегда "можно".  Но мне мой личный идеальный котлин Ильмир не сделал почему-то
источник

AH

Ayrat Hudaygulov in Kotlin JS
На паттерн когда человек явно не указал Unit возвращаемым типом, написал statement body и последним выражением стоит не Unit - точно надо подсказку от IDE или компилятора что тут говнокод)
источник

AH

Ayrat Hudaygulov in Kotlin JS
то есть вот такое

fun foo() {
   someNoneUnitExpression
}
источник

BP

Bogdan Panchenko in Kotlin JS
ПС мне подобные ворнинги были (результат функции не используется), и довольно часто, так что можно репортить проблему где идея не понимает
источник

BP

Bogdan Panchenko in Kotlin JS
Тогда 99 функций имело бы его, решили не напрягать. Для компилятора есть флаги, библиотеки обычно используется, там компилятор заставляет писать много чего
источник

AH

Ayrat Hudaygulov in Kotlin JS
Если есть способ включить такой варнинг, я бы с радостью его включил
источник