rustc
有一个“lint 组”的概念,您可以通过一个名称切换多个警告。
例如,nonstandard-style
lint 会一次性设置 non-camel-case-types
、non-snake-case
和 non-upper-case-globals
。 因此,以下是等效的:
$ rustc -D nonstandard-style
$ rustc -D non-camel-case-types -D non-snake-case -D non-upper-case-globals
以下是每个 lint 组的列表,以及它们包含的 lint:
组 | 描述 | Lint |
warnings | 所有设置为发出警告的 lint | 请参阅 warn-by-default 获取默认警告设置 |
deprecated-safe | 用于检测过去被错误标记为安全的函数的 lint | deprecated-safe-2024 |
future-incompatible | 用于检测具有未来兼容性问题的代码的 lint | abi-unsupported-vector-types, ambiguous-associated-items, ambiguous-glob-imports, cenum-impl-drop-cast, coherence-leak-check, conflicting-repr-hints, const-evaluatable-unchecked, deref-into-dyn-supertrait, elided-lifetimes-in-associated-constant, forbidden-lint-groups, ill-formed-attribute-input, invalid-type-param-default, late-bound-lifetime-arguments, legacy-derive-helpers, macro-expanded-macro-exports-accessed-by-absolute-paths, missing-fragment-specifier, order-dependent-trait-objects, out-of-scope-macro-calls, patterns-in-fns-without-body, proc-macro-derive-resolution-fallback, ptr-cast-add-auto-to-object, pub-use-of-private-extern-crate, repr-transparent-external-private-fields, self-constructor-from-outer-item, semicolon-in-expressions-from-macros, soft-unstable, uncovered-param-in-projection, uninhabited-static, unstable-name-collisions, unstable-syntax-pre-expansion, unsupported-fn-ptr-calling-conventions, wasm-c-abi |
keyword-idents | 检测以后版本会成为关键字的标识符的 lint | keyword-idents-2018, keyword-idents-2024 |
let-underscore | 检测可能无效的通配符 let 绑定的 lint | let-underscore-drop, let-underscore-lock |
nonstandard-style | 违反标准命名约定 | non-camel-case-types, non-snake-case, non-upper-case-globals |
refining-impl-trait | 检测 trait 实现对 impl Trait 返回类型的细化的 lint | refining-impl-trait-internal, refining-impl-trait-reachable |
rust-2018-compatibility | 用于将代码从 2015 版本过渡到 2018 版本的 Lint | absolute-paths-not-starting-with-crate, anonymous-parameters, keyword-idents-2018, tyvar-behind-raw-pointer |
rust-2018-idioms | 引导您使用 Rust 2018 的惯用功能的 Lint | bare-trait-objects, elided-lifetimes-in-paths, ellipsis-inclusive-range-patterns, explicit-outlives-requirements, unused-extern-crates |
rust-2021-compatibility | 用于将代码从 2018 版本过渡到 2021 版本的 Lint | array-into-iter, bare-trait-objects, ellipsis-inclusive-range-patterns, non-fmt-panics, rust-2021-incompatible-closure-captures, rust-2021-incompatible-or-patterns, rust-2021-prefixes-incompatible-syntax, rust-2021-prelude-collisions |
rust-2024-compatibility | 用于将代码从 2021 版本过渡到 2024 版本的 Lint | boxed-slice-into-iter, dependency-on-unit-never-type-fallback, deprecated-safe-2024, edition-2024-expr-fragment-specifier, if-let-rescope, impl-trait-overcaptures, keyword-idents-2024, missing-unsafe-on-extern, never-type-fallback-flowing-into-unsafe, rust-2024-guarded-string-incompatible-syntax, rust-2024-incompatible-pat, rust-2024-prelude-collisions, static-mut-refs, tail-expr-drop-order, unsafe-attr-outside-unsafe, unsafe-op-in-unsafe-fn |
unused | 检测已声明但未使用的事物或多余语法的 Lint | dead-code, map-unit-fn, path-statements, redundant-semicolons, unreachable-code, unreachable-patterns, unused-allocation, unused-assignments, unused-attributes, unused-braces, unused-doc-comments, unused-extern-crates, unused-features, unused-imports, unused-labels, unused-macro-rules, unused-macros, unused-must-use, unused-mut, unused-parens, unused-unsafe, unused-variables |
此外,还有一个 bad-style
lint 组,它是 nonstandard-style
的已弃用别名。
最后,您还可以通过调用 rustc -W help
来查看上表。 这将为您提供已安装的特定编译器的确切值。