-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcompose-stability.conf
More file actions
34 lines (30 loc) · 1.75 KB
/
Copy pathcompose-stability.conf
File metadata and controls
34 lines (30 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Compose compiler stability configuration.
//
// Declares types the compiler cannot prove stable as stable, so composables that receive them
// become skippable. Wired into every Compose module via ComposeConventionPlugin.
//
// SAFETY: declaring the read-only collection interfaces stable is sound here ONLY because every
// BLoC Model is replaced wholesale on each StateFlow emission and is never mutated in place. Do not
// pass a MutableList you later mutate into a composable — that would make this a lie and cause
// missed recompositions / stale UI.
// Kotlin read-only collection interfaces.
kotlin.collections.List
kotlin.collections.Set
kotlin.collections.Map
kotlin.collections.Collection
// Display-string type from client/text/public. Sealed and immutable, including persistent immutable
// collection storage for phrase args / joined parts.
com.plusmobileapps.chefmate.text.TextData
// Shared domain value types (data classes + enums) from the *:data:public modules. These are
// immutable by design but inferred unstable because their modules omit the Compose compiler plugin.
// A List<Category>/ImmutableList<GroceryItem> etc. inside a BLoC Model stays unstable until its
// element type is declared here (ImmutableList<T> is stable only when T is). Add a feature's data
// package below once its Models are confirmed value-only (verify with -PcomposeMetrics=true).
com.plusmobileapps.chefmate.recipe.data.**
com.plusmobileapps.chefmate.grocery.data.**
com.plusmobileapps.chefmate.meal.data.**
// Immutable date/time value types from kotlinx-datetime (a non-Compose library, so inferred
// unstable). Appear directly in BLoC Models (e.g. ChooseDateBloc, MealPlanBloc.MonthModel).
kotlinx.datetime.LocalDate
kotlinx.datetime.LocalDateTime
kotlinx.datetime.LocalTime