我注意到为了避免代码被视为死代码,它必须能够从所有二进制文件中访问到。例如:
这份报告将
虽然这种行为背后有一些合理性,但在VSCode经常抱怨并且Clippy的输出被这些警告淹没时,这非常烦人。是否有解决方案至少可以全局禁用死代码检测?应避免使用cargo工作区重新组织整个项目。
Cargo.toml:
[[bin]]
name = "main_one"
path = "src/main_one.rs"
[[bin]]
name = "main_two"
path = "src/main_two.rs"
main_one.rs:
mod utils;
fn main() {
print!("Hello, ");
utils::function_in_question();
}
main_two.rs:
mod utils;
fn main() {
print!("Hello, ");
// utils::function_in_question();
}
utils.rs:
pub fn function_in_question() {
println!("world!");
}
这份报告将
function_in_question
标记为死代码,即使它可以从main_one.rs
访问。取消对它的注释可以解决此问题。如果只在main_two.rs
中存在,则也可以正常工作。虽然这种行为背后有一些合理性,但在VSCode经常抱怨并且Clippy的输出被这些警告淹没时,这非常烦人。是否有解决方案至少可以全局禁用死代码检测?应避免使用cargo工作区重新组织整个项目。
#![allow(dead_code)]
,而不是在Cargo.toml
文件中添加。正如我之前所说,我仍然希望看到一个解决此问题的正确方法的答案,因为全局静默一个本来有用的警告只会规避问题(并在此过程中创建另一个问题)。 - pretzelhammer