From 44c00b48739508f0b897a8588aa378a5094c5400 Mon Sep 17 00:00:00 2001 From: AskaEth Date: Tue, 10 Nov 2026 15:29:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(app-iced):=20=E6=B5=8B=E8=AF=95=E5=8A=A9?= =?UTF-8?q?=E6=89=8B=E6=94=B9=E7=94=A8=20matches!=EF=BC=8C=E6=B6=88?= =?UTF-8?q?=E6=8E=89=20deny=20=E7=BA=A7=20clippy=EF=BC=88=E5=A4=8D?= =?UTF-8?q?=E5=AE=A1=20r2=20P1-1=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `dispatched_adopt` 内层 `match (&**command, want) { … _ => false }` 被判 `match expression looks like matches! macro`(deny 级 ⟹ CI 的 `--workspace --all-targets -D warnings` 必红;558fbf2 原树 `cargo clippy -p unlucky-app-iced --all-targets` 实测 exit 101)。 改成 `let AppCommand::Adopt(..) = command else { return false }` + 一条 `matches!`, 判据与原来逐字等价(四种命令种类 × 对应 slug)。同一处的注释补一句「为什么不能再写 match」, 免得下一个人改回去。 教训记账:r2 自验只跑了 fmt/check/test,漏了 clippy(T23「五步少一步等于那步不存在」); 本轮五步齐跑,退出码见完成报告。 --- crates/app-iced/src/app/update/adopt.rs | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/crates/app-iced/src/app/update/adopt.rs b/crates/app-iced/src/app/update/adopt.rs index d63c3c9..965ade4 100644 --- a/crates/app-iced/src/app/update/adopt.rs +++ b/crates/app-iced/src/app/update/adopt.rs @@ -199,16 +199,21 @@ mod tests { } /// 台账里有没有派过某条 adopt 命令(只认命令种类,不看载荷内容)。 + /// + /// 写法是 `let ... else` + `matches!`:内层用 `match` 会被 clippy 判成 + /// `match expression looks like matches! macro`(deny 级,CI 的 `-D warnings` 直接红)。 fn dispatched_adopt(ledger: &Rc>>, want: &str) -> bool { - ledger.borrow().iter().any(|command| match command { - AppCommand::Adopt(command) => match (&**command, want) { - (AdoptCommand::Scan, "scan") => true, - (AdoptCommand::Preview(_), "preview") => true, - (AdoptCommand::Confirm(_), "confirm") => true, - (AdoptCommand::Dismiss, "dismiss") => true, - _ => false, - }, - _ => false, + ledger.borrow().iter().any(|command| { + let AppCommand::Adopt(command) = command else { + return false; + }; + matches!( + (&**command, want), + (AdoptCommand::Scan, "scan") + | (AdoptCommand::Preview(_), "preview") + | (AdoptCommand::Confirm(_), "confirm") + | (AdoptCommand::Dismiss, "dismiss") + ) }) }