Clippy
一系列用于捕获常见错误并改进你的 Rust 代码的 lint。
Lint 被划分为不同的类别,每个类别都有一个默认的 lint 级别。你可以通过更改类别的 lint 级别来选择 Clippy 应该在多大程度上烦扰帮助你。
类别 | 描述 | 默认级别 |
---|---|---|
clippy::all | 默认启用的所有 lint(正确性、可疑、风格、复杂性、性能) | 警告/拒绝 |
clippy::correctness | 代码完全错误或无用 | 拒绝 |
clippy::suspicious | 代码很可能错误或无用 | 警告 |
clippy::style | 应该以更惯用的方式编写的代码 | 警告 |
clippy::complexity | 以复杂方式执行简单操作的代码 | 警告 |
clippy::perf | 可以编写成运行更快的代码 | 警告 |
clippy::pedantic | 相当严格或偶尔出现误报的 lint | 允许 |
clippy::restriction | 阻止使用语言和库特性的 lint1 | 允许 |
clippy::nursery | 仍在开发中的新 lint | 允许 |
clippy::cargo | 用于 cargo 清单的 lint | 允许 |
未来会有更多,如果你有想法,请提交一个 issue!
restriction
类别**绝对**不应该作为一个整体启用。其中包含的 lint 可能会针对完全合理的代码进行 lint,可能没有替代建议,并且可能与任何其他 lint(包括其他类别)相矛盾。在启用之前,应该逐个考虑 lint。
1
restriction
lint 的一些用例包括
- 严格的编码风格 (例如
clippy::else_if_without_else
)。 - 在 CI 上进行额外的限制 (例如
clippy::todo
)。 - 防止在某些函数中发生 panic (例如
clippy::unwrap_used
)。 - 仅在部分代码上运行 lint (例如,在模块上使用
#[forbid(clippy::float_arithmetic)]
)。