Find Compose stability issues
Recipe ID
org.openrewrite.kotlin.compose.FindComposeStabilityIssues$KtRecipeArtifact
io.moderne.recipe:recipes-kotlinSurface declarations where Compose's stability inferrer will refuse to mark a parameter, property, or class as stable: MutableList/MutableMap/MutableSet parameters, read-only List parameters, @Stable/@Immutable annotations applied to classes with var fields, and data class declarations holding List<T> properties.
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.compose.FindComposeStabilityIssues$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.
- Find
@Composablefunctions withMutableList/MutableMap/MutableSetparametersorg.openrewrite.kotlin.compose.FindMutableCollectionAsComposableParam$KtRecipe - Find
@Composablefunctions withList/Map/Setparametersorg.openrewrite.kotlin.compose.FindListAsComposableParam$KtRecipe - Find
@Stableon classes withvarpropertiesorg.openrewrite.kotlin.compose.FindStableAnnotationOnMutableClass$KtRecipe - Find
@Immutableon classes withvarpropertiesorg.openrewrite.kotlin.compose.FindImmutableAnnotationOnMutableClass$KtRecipe - Find
@Stableclasses holding mutable-collection propertiesorg.openrewrite.kotlin.compose.FindStableAnnotationOnClassWithMutableCollection$KtRecipe - Find
data classdeclarations withList<T>propertiesorg.openrewrite.kotlin.compose.FindDataClassWithListProperty$KtRecipe - Find lambda parameters on
@Composablefunctionsorg.openrewrite.kotlin.compose.FindLambdaAsComposableParamWithoutNoinline$KtRecipe - Find
Array<T>parameters on@Composablefunctionsorg.openrewrite.kotlin.compose.FindArrayParameterOnComposable$KtRecipe - Find
Flow<T>/StateFlow<T>parameters on@Composablefunctionsorg.openrewrite.kotlin.compose.FindFlowParameterOnComposable$KtRecipe - Find
android.content.Contextparameters on@Composablefunctionsorg.openrewrite.kotlin.compose.FindContextParameterOnComposable$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