You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Update Kotlin to 1.9.21
* Move to default kotlin language and api versions
* Drop JS LEGACY
* Update native to conform to the new kotlin
* Update native to conform to the new kotlin
* Fix file annotation on darwin
* Add `-Xexpect-actual-classes` compiler argument
* Update the order of imports to pass checks
* Set the api and language version explicitly
>
> Apart from actually moving from Kotlin 1.8.22 to Kotlin 1.9.21, there was some work required for the code to compile:
>
> * Add `-Xexpect-actual-classes` compiler argument
>
> With Kotlin 1.9.20, KMP is now stable, but expect-actual mechanism for `class`es is not, hence the need to provide the compiler argument.
>
> * Add `ExperimentalForeignApi` annotation to `cinterop` declarations
>
> From https://kotlinlang.org/docs/whatsnew19.html#explicit-c-interoperability-stability-guarantees:
>
> > If you want to use C-like foreign APIs such as pointers, you must opt in with `@OptIn(ExperimentalForeignApi)`, otherwise your code won't compile.
>
> * Change `kotlin.native.concurrent.*` imports to `kotlin.concurrent.*`
>
> AFAIK, the declarations have been somewhat stabilized and moved to the common location.
>
> * Change `JS(BOTH)` to `JS` (same as `JS(IR)`) in the build script
>
> From https://kotlinlang.org/docs/js-ir-compiler.html:
>
> > The old compiler backend has been deprecated since Kotlin 1.8.0. Starting with Kotlin 1.9.0, using compiler types `LEGACY` or `BOTH` leads to an error.
>
> * Add `kotlin.mpp.applyDefaultHierarchyTemplate=false` to gradle.properties
>
> In Kotlin 1.9.20+ there are some improvements to reduce the amount of boilerplate in the target hierarchy: https://kotlinlang.org/docs/whatsnew1920.html#set-up-the-target-hierarchy.
>
> But for an existing project with an established and complex target hierarchy, it's easier to simply opt-out from this feature. That's why I needed to add this option to the properties file.
0 commit comments