Migrate to Kotlin 2.x
Recipe ID
org.openrewrite.kotlin.migrate.Kotlin1To2$KtRecipeArtifact
io.moderne.recipe:recipes-kotlinModernizes a Kotlin 1.x codebase for Kotlin 2.x: replaces stdlib APIs deprecated between 1.4 and 2.0 with their modern equivalents, swaps JVM-only java.lang/java.util helpers for multiplatform Kotlin extensions, migrates inline class to @JvmInline value class, and removes @OptIn annotations for experimental markers that have since graduated to stable.
Usage
This recipe has no required configuration options. You’ll need the Moderne CLI configured before running the command below.
mod run . --recipe org.openrewrite.kotlin.migrate.Kotlin1To2$KtRecipeIf the recipe isn’t available locally, install it with:
mod config recipes jar install io.moderne.recipe:recipes-kotlin:0.2.0Definition
This recipe runs the following recipes in order.
- Use modern Kotlin stdlib idioms
org.openrewrite.kotlin.migrate.UseModernKotlinStdlibApis$KtRecipe - Use
kotlin.mathinstead ofjava.lang.Mathorg.openrewrite.kotlin.migrate.UseKotlinMath$KtRecipe - Use Kotlin number extensions instead of
java.lang.Integer/Long/Double/Float/Booleanorg.openrewrite.kotlin.migrate.UseKotlinNumberApis$KtRecipe - Use
Charextensions instead ofjava.lang.Characterorg.openrewrite.kotlin.migrate.UseKotlinChar$KtRecipe - Use Kotlin collection extensions instead of
java.util.Collectionsorg.openrewrite.kotlin.migrate.UseKotlinCollections$KtRecipe - Use Kotlin array extensions instead of
java.util.Arraysorg.openrewrite.kotlin.migrate.UseKotlinArray$KtRecipe - Use
kotlin.text.Regexinstead ofjava.util.regex.Patternorg.openrewrite.kotlin.migrate.UseKotlinRegex$KtRecipe - Use
@JvmInline value classinstead ofinline classorg.openrewrite.kotlin.migrate.UseValueClass$KtRecipe - Remove redundant
@OptInannotationsorg.openrewrite.kotlin.migrate.RemoveRedundantOptIns$KtRecipe
Data tables
Structured output this recipe can produce.
- Source files that had resultsSource files that were modified by the recipe run.
org.openrewrite.table.SourcesFileResults - Source files that had search resultsSearch results that were found during the recipe run.
org.openrewrite.table.SearchResults - Source files that errored on a recipeThe details of all errors produced by a recipe run.
org.openrewrite.table.SourcesFileErrors - Recipe performanceStatistics used in analyzing the performance of recipes.
org.openrewrite.table.RecipeRunStats