https://github.com/JetBrains/kotlin/releases/tag/v2.3.10
Вышел Kotlin 2.3.10 - патч-релиз с критическими исправлениями компилятора, включая data race в kotlinx.serialization, проблемы с type casting, и улучшения совместимости с Compose compiler.
☝️ Критические исправления:
📺 kotlinx.serialization
• Исправлена data race при регистрации расширений protobuf-плагина - ранее вызывала непредсказуемые ошибки чтения метаданных в многопоточных сборках;
📺 Компилятор K2
• Убран ClassCastException при приведении kotlin.UInt к java.lang.Number в compile-time константах
• Стабилизировано разрешение EnhancedNullability (проблемы с null-safety в неиспользуемом коде)
• Регресс в аннотации @NoInfer начиная с 2.2.20
• NoWhenBranchMatchedException в when-выражениях с non-sealed классами
sealed class Sealed📺 Compose & Build
abstract class SubAbstract: Sealed()
class BranchB: SubAbstract()
fun takeSealed(): Sealed = BranchB()
fun foo() {
val isExhaustive = when (val x = takeSealed()) {
!is BranchB -> {
}
}
}
• Ошибка "Unsupported class file version 69" (Java 21) при генерации Compose mappings
• Добавлена генерация stack trace mappings для Compose compiler
• Возвращена поддержка androidTarget для AGP < 9
• Обновлены NPM-зависимости для JS/Wasm таргетов
———————
💭 Рекомендуется обновиться тем, у кого проекты с kotlinx.serialization (особенно protobuf), Compose compiler, или при столкновении с описанными ошибками.
Более полно - в описании патч-релиза
