Руководство по совместимости для Kotlin 1.7.20
Поддержание актуальности языка и Комфортные обновления являются основополагающими принципами проектирования языка Kotlin. Первый принцип гласит, что конструкции, препятствующие развитию языка, должны быть удалены, а второй — что об этом удалении следует заранее хорошо сообщить, чтобы миграция кода прошла как можно глаже.
Обычно несовместимые изменения происходят только в релизах новых функций, но на этот раз нам приходится внести два таких изменения в инкрементальный релиз, чтобы ограничить распространение проблем, вызванных изменениями в Kotlin 1.7.
В этом документе они обобщены, предоставляя справочную информацию для миграции с Kotlin 1.7.0 и 1.7.10 на Kotlin 1.7.20.
Основные термины
В этом документе мы вводим несколько типов совместимости:
Исходный код: изменение, несовместимое с исходным кодом, препятствует компиляции кода, который ранее компилировался без ошибок или предупреждений.
Бинарный код: два бинарных артефакта считаются бинарно совместимыми, если обмен ими не приводит к ошибкам загрузки или компоновки.
Поведенческая: изменение считается поведенчески несовместимым, если одна и та же программа демонстрирует различное поведение до и после применения изменения.
Обратите внимание, что эти определения приведены только для чистого Kotlin. Совместимость кода Kotlin с точки зрения других языков (например, Java) выходит за рамки этого документа.
Язык
Попытка отката для исправления обработки ограничений
Запрет некоторых случаев вывода типов билдера для предотвращения проблемных взаимодействий с несколькими лямбда-выражениями и разрешением
© 2010–2023 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