Руководство по совместимости для 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