docs(app-iced): M101 r3 —— 补「页外值 / 首帧取数」共享点,守门收窄,文档口径统一
r2 复审 P1:报告与代码文档的「仍然共享」清单只写了 3 项,漏了「读页外真值 / 首帧取数」这半边。
本轮按复审给的第一条路(文档/契约层面诚实交代,不动结构):
- `settings/mod.rs` 的「仍然共享」扩到 6 条,新增:
4. 读页外真值 —— `States` 只有 appearance + groups,General 要显示 `Model.lang` 就得改
`settings/state.rs` + `pages/mod.rs`(2 个共享文件)或在 `app/state.rs` 用真值初始化
`Groups.language_appearance`(1 个);给出建议形状:一次性给 `States` 加 `model: &'a Model`。
5. 首帧取数 / 异步发起 —— `Body` 返回不了 `Task`,组自己发不了首帧探测;两条路(`Boot` 分支派发
1 个共享文件;或把 `Body` 返回类型加一条 `Task` 旁路,1 个文件一次性)与「不改的代价」都写明。
6. 隐性代价:`Groups: Sync + Default`(`demo_groups` 的 `static LazyLock` 撑 harness),
非 `Sync` 字段会让编译红在共享的 `settings/state.rs`;给了改法。
- `general.rs` 文档改成正确指引(消息加在本线的 `language_appearance.rs`,落点
`app/update/settings/language_appearance.rs`,**不要**改 `pages/mod.rs` / `pages/message.rs` /
`app/update/page_messages.rs`),并指向上面第 4、5 条。
- `tests/mod.rs` 的「接真控件改 3 个文件」订正为 2 个,并删掉对**已被删除**的
`only_the_appearance_group_carries_a_real_control_body` 的点名;`appearance_section.rs` 的
模块文档与断言消息同步订正(`body = Some(appearance::body)`)。
- 守门 `the_group_dispatch_has_no_catch_all_arm` 判据**结构化收窄**:用大括号深度计数只看
`match message {` 本层(深度 1)的臂,嵌套 match 整段跳过、`|` 折行 or-pattern 续行放行;
只有「本层里含 `=>` 且不以该组变体路径开头」才算兜底。新增两条守门自测:
`the_guard_ignores_nested_matches_and_folded_or_patterns`(复审 P2-3 的假红探针)与
`the_guard_still_catches_both_catch_all_shapes`(`_ =>` 与 `other =>` 仍要红);
误伤类别如实写进测试 doc 的「抓不住什么」。
- P3:`java::Message::Ping` 的文档改成指向真实存在的绊线(`tests/java_section.rs` 的
`the_java_group_is_still_demo_rows`);`demo_groups()` 文档写明 `Sync + Default` 的隐性要求。
This commit is contained in:
1 parent
029ece3f17
commit
c166944c8e
7 files changed
+206
-55
No files matched your search
@@ -3,7 +3,8 @@
|
||||
//!
|
||||
//! **归 language+appearance 线**:这是设置页唯一接了真控件的一组,真控件实现全在
|
||||
//! `pages/appearance/section.rs`;本文件只守「注册表这一侧的接线」。
|
||||
//! 本组已经把 `body` 接上了,所以 `tests/mod.rs` 那条「只有一组有真控件」的绊线不用再动。
|
||||
//! 本组已经把 `body` 接上了;`tests/mod.rs` 那条「只有一组有真控件」的**聚合绞线已在 M101 r2 删除**
|
||||
//! (被四条 per-group 断言完全蕴含——代价是「唯一性」从此没人守,那段说明写在 `tests/mod.rs` 同处)。
|
||||
|
||||
use super::super::appearance;
|
||||
use unlucky_design::icons::IconKind;
|
||||
@@ -45,6 +46,7 @@ fn the_appearance_group_keeps_its_icon() {
|
||||
fn the_appearance_group_keeps_a_real_control_body() {
|
||||
assert!(
|
||||
appearance::GROUP.body.is_some(),
|
||||
"外观分组必须是挂了真控件的那一组(`body = Some(crate::pages::appearance::section)`)"
|
||||
"外观分组必须是挂了真控件的那一组(`settings/appearance.rs` 的 `body: Some(appearance::body)`;\
|
||||
具体渲染器由那一行源码 + 截图担保,函数指针相等性断言不了)"
|
||||
);
|
||||
}
|
||||
Reference in new issue
Block a user