Руководство по совместимости для Kotlin 1.7.20
Поддержание актуальности языка и Удобство обновлений — одни из основных принципов проектирования языка Kotlin. Первый означает, что конструкции, препятствующие развитию языка, следует удалять, а второй — что о таких изменениях следует заранее сообщать, чтобы переход на новую версию кода проходил как можно проще.
Обычно несовместимые изменения происходят только в выпусках с новыми возможностями, однако в этот раз нам пришлось внести два таких изменения в промежуточный выпуск, чтобы ограничить распространение проблем, вызванных изменениями в Kotlin 1.7.
В этом документе кратко описаны эти изменения и приведены рекомендации по переходу с Kotlin 1.7.0 и 1.7.10 на Kotlin 1.7.20.
Основные термины
В этом документе рассматриваются несколько видов совместимости:
исходная: изменение, нарушающее совместимость исходного кода, не позволяет скомпилировать код, который раньше компилировался без ошибок и предупреждений
бинарная: два бинарных артефакта считаются бинарно совместимыми, если их взаимная подмена не приводит к ошибкам загрузки или связывания
поведенческая: изменение считается нарушающим поведенческую совместимость, если одна и та же программа до и после его применения ведёт себя по-разному
Помните, что эти определения относятся только к чистому Kotlin. Совместимость кода Kotlin с точки зрения других языков (например, Java) не входит в область рассмотрения этого документа.
Язык
Отмена попытки исправить обработку ограничений proper
Запрет некоторых случаев вывода типов на основе билдера, чтобы избежать проблем при взаимодействии нескольких лямбд и разрешения перегрузок
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/compatibility-guide-1720.html