Crate rustc_lint[−][src]
Expand description
Lints, aka compiler warnings.
A ‘lint’ check is a kind of miscellaneous constraint that a user might want to enforce, but might reasonably want to permit as well, on a module-by-module basis. They contrast with static constraints enforced by other phases of the compiler, which are generally required to hold in order to compile the program at all.
Most lints can be written as LintPass instances. These run after
all other analyses. The LintPass
es built into rustc are defined
within rustc_session::lint::builtin,
which has further comments on how to add such a lint.
rustc can also load user-defined lint plugins via the plugin mechanism.
Some of rustc’s lints are defined elsewhere in the compiler and work by
calling add_lint()
on the overall Session
object. This works when
it happens before the main lint pass, which emits the lints stored by
add_lint()
. To emit lints after the main lint pass (from codegen, for
example) requires more effort. See emit_lint
and GatherNodeLevels
in context.rs
.
Some code also exists in rustc_session::lint, rustc_middle::lint.
Note
This API is completely unstable and subject to change.
Re-exports
Modules
Lints in the Rust compiler.
Implementation of lint checking.
Implementation of lint checking.
Some lints that are only useful in the compiler or crates that use compiler internals, such as Clippy.
Implementation of lint checking.
Macros
Structs
Lints that are buffered up early on in the Session
before the
LintLevels
is calculated.
Context for lint checking of the AST, after expansion, before lowering to HIR.
Extra information for a future incompatibility lint.
Context for lint checking after type checking.
Specification of a single lint.
Identifies a lint known to the compiler.
Information about the registered lints.
Enums
Setting for how to handle a lint.
Statics
The array_into_iter
lint detects calling into_iter
on arrays.
Traits
Functions
Performs lint checking on a crate.
Tell the LintStore
about all the built-in lints (the ones
defined in this crate and the ones defined in
rustc_session::lint::builtin
).