SuperAPI AI 工具集

understanding-stability-inference

通用与其它

查看项目

更新于 10-16 03:07

技能介绍

用途:帮助理解并预测 Compose 编译器对类型稳定性的判定,回答“为什么 Foo 被判为 runtime stable 而非 stable”这类问题。适用于报告显示某类型为 runtime/unknown、涉及泛型、跨模块类、$stable 字段、@StabilityInferred、自引用类型、Java 类型或接口参数等情况。若问题只是机械修复(var 改 val 等)或尚未生成报告,应先使用诊断或稳定化相关技能。

主要能力:按编译器同样的 12 阶段顺序逐步分析类型并定位结论来源:原始类型/String/函数/Unit 快速路径;类型参数替换;可空解包;内联类取底层类型;递归环检测;@Stable/@Immutable/@StableMarker 注解检查;已知稳定结构注册表(Pair、Triple、ImmutableList、dagger.Lazy 等);外部配置匹配;跨模块 @StabilityInferred 生成的 $stable 字段;Java 类型默认 unstable;接口返回 unknown;逐字段分析(含继承字段)。同时区分 Stability.Certain、Runtime、Unknown、Parameter、Combined 五种编译期稳定性类型与位掩码编码。

使用方式:先确保已生成 Compose 编译器报告(build/compose_compiler/ 下的 classes/composables 文本),然后按上述阶段逐一对照调用点进行解释与预测。

限制:该技能仅用于解释与诊断,不做结构性修复、不强制 CI 要求。不得在无法保证变更契约时建议加 @Stable/@Immutable,否则会造成静默漏重组。具体安装命令与运行方式资料未提供。