fix(app-iced): 图标守门白名单补导航族(M79 进主线后的语义错配)
M86 的 sub_24_boxes_go_through_view_at 写于 M79 之前,白名单「未列出 = 0」把 导航族四处 view 调用判成违规。实测这四处 geometry.icon = IconSize::Toolbar = 24, view 是正确入口,故补白名单(逐文件精确计数,仍能抓「同文件多一处」),总数 8→13。 icons.rs 399 行。
This commit is contained in:
1 parent
1f4bc1b80d
commit
006eb6869a
1 file changed
+11
-9
@@ -167,9 +167,7 @@ mod tests {
|
||||
);
|
||||
}
|
||||
|
||||
/// `view_at` 必须**按请求尺寸烘焙**(复审 r1 P1-2/P2-2 的守门断言)。
|
||||
///
|
||||
/// 两条路径的差别就是这条测试的全部意义:
|
||||
/// `view_at` 必须**按请求尺寸烘焙**(复审 r1 P1-2/P2-2 的守门断言)。两条路径的差别就是全部意义:
|
||||
/// - **烘焙路径**:`source(kind, 盒)` → SVG `width=盒` + 线宽 `1.5×24/盒` ⇒ 视觉恒 **1.5px**;
|
||||
/// - **缩放路径**(错的那条):24 烘焙(`stroke-width="1.5"`)塞进 18 盒 ⇒ 视觉 **1.125px**。
|
||||
#[test]
|
||||
@@ -228,11 +226,9 @@ mod tests {
|
||||
assert_ne!(first.id(), handle(IconKind::Close, CAPTION_PX).id());
|
||||
}
|
||||
|
||||
/// **盒 ≠ `RENDER_PX`(24) 的调用点必须走 `view_at`**(复审 r1 P1-1)。
|
||||
///
|
||||
/// 判据 = 调用形状匹配 + **逐调用点计数**(不做「文件里出现过 view_at 就整文件放行」的短路):
|
||||
/// 先剥注释,再认 `icons::view(` / `icons::view::<` / `crate::icons::view` / `super::icons::view`
|
||||
/// 以及 `use …icons…view as v` / `{view, view_at}` 之后的 `v(` / `view(`;
|
||||
/// **盒 ≠ `RENDER_PX`(24) 的调用点必须走 `view_at`**(复审 r1 P1-1)。判据 = 调用形状匹配 +
|
||||
/// **逐调用点计数**(不做「文件里出现过 view_at 就整文件放行」的短路):先剥注释,再认
|
||||
/// `icons::view(` / `icons::view::<` / `crate::`·`super::` 前缀 / `use …view as v` 的 `v(`。
|
||||
/// 每个文件的计数必须**等于**白名单期望(未列出 = 0),所以「同文件改对 3 处、漏掉 1 处」也会红。
|
||||
#[test]
|
||||
fn sub_24_boxes_go_through_view_at() {
|
||||
@@ -242,6 +238,12 @@ mod tests {
|
||||
("components/inputs/menu.rs", 2),
|
||||
("components/inputs/search.rs", 2),
|
||||
("components/buttons/mod.rs", 1), // 24 图标 + 40 外壳
|
||||
// 导航族(M79)全是 `IconSize::Toolbar = 24`,`view` 正确;本白名单写于 M79 之前,
|
||||
// 「未列出 = 0」会误判它们。补进来后这几族再出现多余 `view` 仍会红。
|
||||
("components/navigation/app_bar.rs", 1),
|
||||
("components/navigation/drawer/item.rs", 1),
|
||||
("components/navigation/list_item.rs", 2),
|
||||
("components/navigation/tabs.rs", 1),
|
||||
];
|
||||
let root = std::path::Path::new(env!("CARGO_MANIFEST_DIR")).join("src");
|
||||
let mut views = 0usize;
|
||||
@@ -265,7 +267,7 @@ mod tests {
|
||||
}
|
||||
}
|
||||
assert!(bad.is_empty(), "图标入口用法违规:\n{}", bad.join("\n"));
|
||||
assert_eq!(views, 8, "全仓 `icons::view` 调用点总数变了");
|
||||
assert_eq!(views, 13, "全仓 `icons::view` 调用点总数变了");
|
||||
|
||||
fn sites(list: &[(&str, usize)], rel: &str) -> usize {
|
||||
list.iter().find(|(p, _)| *p == rel).map_or(0, |(_, n)| *n)
|
||||
|
||||
Reference in new issue
Block a user