From 9231e993e48aa72058b8f00336b8a3b3a2a0142c Mon Sep 17 00:00:00 2001 From: xfy Date: Mon, 6 Jul 2026 11:42:03 +0800 Subject: [PATCH] =?UTF-8?q?fix(clippy):=20=E4=BF=AE=E5=A4=8D=E4=B8=A4?= =?UTF-8?q?=E5=A4=84=E9=A2=84=E5=AD=98=20clippy=20=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - execute.rs: ExecResult/ExecStatus 仅 server 端使用,加 cfg gate 消除 WASM 目标的 unused_imports - system.rs: in_scope 外层闭包保留 || execute_for_editor() 包装 (Closure::new 要求 Fn 可重复调用,直接传闭包会 use-after-move), 加 #[allow(clippy::redundant_closure)] 并注释原因 cargo clippy 双目标 -- -D warnings 均通过。 --- src/api/code_runner/execute.rs | 5 ++++- src/pages/admin/system.rs | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/api/code_runner/execute.rs b/src/api/code_runner/execute.rs index 10a5483..1bc1e3f 100644 --- a/src/api/code_runner/execute.rs +++ b/src/api/code_runner/execute.rs @@ -17,7 +17,10 @@ use dioxus::prelude::*; // 共享数据类型在函数签名中出现,双目标可见,不 gate。 -use crate::api::code_runner::{ExecRequest, ExecResult, ExecStatus, ExecTask}; +use crate::api::code_runner::{ExecRequest, ExecTask}; +// ExecResult/ExecStatus 仅在 server function body(被宏剥离到 WASM 之外)内使用。 +#[cfg(feature = "server")] +use crate::api::code_runner::{ExecResult, ExecStatus}; // server-only 辅助模块与依赖:仅在 server function body(被宏剥离到 WASM 之外)内使用。 #[cfg(feature = "server")] diff --git a/src/pages/admin/system.rs b/src/pages/admin/system.rs index ada7c57..30c1b42 100644 --- a/src/pages/admin/system.rs +++ b/src/pages/admin/system.rs @@ -772,7 +772,10 @@ fn SqlConsoleTab() -> Element { let on_ready = Closure::new(|| {}); // Ctrl/Cmd+Enter 触发执行(与按钮共用同一套资源/护栏逻辑)。 // 从 CodeMirror JS 事件触发时无 dioxus scope,必须用 in_scope 重建。 - // execute_for_editor 是 Fn(只捕获 Copy signal),借用调用即可。 + // 刻意用闭包 `|| execute_for_editor()` 而非直接传 `execute_for_editor`: + // 后者会 move 闭包值进 in_scope,导致第二次快捷键触发时 use-after-move + // (Closure::new 要求 Fn 可重复调用)。闭包包装走借用调用,每次都读最新值。 + #[allow(clippy::redundant_closure)] let on_run_shortcut = Closure::new(move || { dioxus::core::Runtime::current() .in_scope(scope_id, || execute_for_editor());