我有一个多人参与的rust项目。我们使用的外部crate定义了一些有问题的函数,这是许多混乱和错误的根源。我想完全否认/禁止在编译时使用这些函数。有什么办法可以做到吗?
您可以使用disallowed_method
Clippy lint来完成此操作。(还有disallowed_type
类型。)
例如,禁用Box::new
:
#![deny(clippy::disallowed_method)]
fn main() {
let my_box = Box::new(123);
}
将此添加到工作空间根目录中的clippy.toml
:
disallowed-methods = [
# fully qualified function/method name:
"std::boxed::Box::new",
]
当你运行cargo clippy
时,你会得到一个关于禁用函数使用的错误:
error: use of a disallowed method `alloc::boxed::Box::new`
--> src/main.rs:4:16
|
4 | let my_box = Box::new(123);
| ^^^^^^^^^^^^^
|