of the class used in @UseSerializers: Use methods to receive full list of supertypes. K1 supertypes() call returned all supertypes, while IrClass.supertypes and FirClassSymbol.resolvedSuperTypes return only immediate ones. This lead to a difference in behavior between K1 and K2, and regression after plugin backend was rewritten from descriptors to IR. #KT-55340 Fixed
Kotlin serialization IDEA plugin
Kotlin serialization plugin consists of three parts: a compiler plugin, an IntelliJ plugin and a runtime library.
This is the folder with common source for all plugins, IDEA plugin is built from here. Gradle and Maven plugins can be found in libraries folder.
Building and usage
Prerequisites:
Before all, follow the instructions from root README.md to download dependencies and build Kotlin compiler. (./gradlew dist)
Plugin works only with IntelliJIDEA 2017.2 and higher.
Make sure you have latest dev version of Kotlin plugin installed.
With gradle:
Run ./gradlew :kotlinx-serialization-compiler-plugin:dist.
In IDEA, open Settings - Plugins - Install plugin from disk... and choose $kotlin_root/dist/artifacts/Serialization/lib/kotlinx-serialization-compiler-plugin.jar
From within IDE (for development):
Run ./gradlew runIde You'll get a fresh copy of IDEA with Kotlin and Kotlin-serialization plugins built from sources.
Building gradle plugin
Run ./gradlew :kotlinx-gradle-serialization-plugin:install
Building maven plugin
Make all prerequisites from libraries' README.md for Maven projects. Go to $kotlin_root/libraries/tools/kotlin-maven-serialization. Run mvn install