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
Copy file name to clipboardExpand all lines: compose-stability-analyzer-idea/CHANGELOG.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,12 +7,15 @@ All notable changes to the IntelliJ IDEA plugin will be documented in this file.
7
7
### Added
8
8
- New setting: "Show in test source sets" for gutter icons (Issue #21)
9
9
- Gutter icons are now hidden in test directories by default (can be enabled in settings)
10
+
- Support for reading @StabilityInferred annotation parameters for cross-module stability detection (Issue #18)
10
11
11
12
### Fixed
12
13
- Fixed typealias detection for Composable function types (Issue #16)
13
14
- Typealiases like `typealias SettingsButtons = @Composable (PlayerUiState) -> Unit` now correctly expand to their underlying function types before stability analysis
14
15
- Fixed ImmutableList/ImmutableSet/ImmutableMap showing as unstable in test code (Issue #21)
15
16
- Added fallback type resolution by simple name for immutable collections when FQN resolution fails in test source sets
Copy file name to clipboardExpand all lines: compose-stability-analyzer-idea/src/main/kotlin/com/skydoves/compose/stability/idea/k2/KtStabilityInferencer.kt
+35-3Lines changed: 35 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -598,12 +598,44 @@ internal class KtStabilityInferencer {
598
598
}
599
599
600
600
/**
601
-
* TODO: Read @StabilityInferred parameters field using K2 Analysis API.
602
-
* Returns null (conservative RUNTIME) until reliable API is found.
601
+
* Reads the @StabilityInferred annotation's parameters field.
602
+
*
603
+
* @StabilityInferred is added by the Compose compiler to classes from other modules
604
+
* to indicate their stability:
605
+
* - parameters = 0: Class is stable
606
+
* - parameters > 0: Class needs runtime stability check
607
+
* - null: Annotation not present
608
+
*
609
+
* This is crucial for cross-module stability: classes from other modules should be
610
+
* UNSTABLE unless annotated with @Stable/@Immutable or @StabilityInferred(parameters=0).
0 commit comments