#kotlin
Тут вчера прилетело новое обновление Kotlin. Как всегда, детали можно почитать в блоге, а здесь опишу кратко изменения:
🔸для получения максимальной пользы от последних JVM-фич, Kotlin расширяет использование динамических вызовов (invokedynamic). В этой версии добавилась конкатенация строк через invokedynamic, или если попроще, то теперь используется
StringConcatFactory.makeConcatWithConstants() вместо StringBuilder.append(). Подробнее тут.🔸добавлена экспериментальная поддержка Java’s Lombok-generated методов. Тут можно почитать, что поддерживается на данный момент.
🔸также появилась экспериментальная поддержка плагина JSpecify, который включает в себя набор аннотаций для проверки на null в Java. По идее, плагин даёт возможность лучше управлять nullability, если вам важна совместимость с Java.
🔸компилятор Kotlin/Native теперь поддерживает экспорт KDoc из Kotlin-кода в Objective-C. Фича даёт возможность делать комментарии видимыми для тех, кто использует написанный вами код, что весьма удобно.
🔸исправлена функция
Array.copyInto() в Kotlin/Native, которая теперь работает гораздо быстрее.🔸добавлено руководство для миграции на новый JS backend.
🔸параллельное выполнение задач в gradle теперь контролируется Gradle parallel execution mechanism. Аннотация
kotlin.parallel.tasks.in.project стала deprecated. 🔸экспериментальная фича для настройки кэширования, которая позволит увеличить скорость запуска kapt.
🔸пара мелких изменений в стандартной библиотеке, связанной с функциями
isLowerCase(), isUpperCase() и digitToInt().