Почему KMP-код красный в IDE, но успешно собирается
Общий код KMP иногда видит платформенные объявления из зависимостей во время сборки, хотя IDE считает их недоступными. Из-за этого могут различаться выбранная перегрузка, выведенный тип и результат выполнения.
В Kotlin 2.5.0-Beta1 появилась экспериментальная отдельная компиляция. Она разрешает обращения из общих source sets по metadata KLIB, чтобы компилятор соблюдал те же границы, что и IDE.
Включается через kotlin.kmp.separateCompilation=true. Старые неявные обращения к платформенному коду могут перестать собираться: связь потребуется описать через expect/actual. Для проектов с C interop ещё остаются известные проблемы.
Post #4807
598

- 👍 1