Clippy lints / Pedantic
Clippy lint · Pedantic · checked with Clippy 0.1.99
clippy::macro_use_imports: Checks for #[macro_use] use
What it meansChecks for #[macro_use] use.... It is in the pedantic group and off by default.
Does it matter?
Since the Rust 2018 edition you can import macro’s directly, this is considered idiomatic.
Stricter lints with some false positives. Off by default; opt in with clippy::pedantic.
How to fix it
Clippy does not fix this one automatically (its suggestion may change behaviour, so it only shows it). Change the code by hand:
Flagged
#[macro_use]
extern crate some_crate;
fn main() {
some_macro!();
}
Write this instead
use some_crate::some_macro;
fn main() {
some_macro!();
}
Turn it off, or on
It is off by default. To use it, set it to warn or deny:
Whole crate (Cargo.toml)
[lints.clippy]
macro_use_imports = "warn"In code
#![warn(clippy::macro_use_imports)]One run
cargo clippy -- -W clippy::macro-use-importsThe [lints] table needs Rust 1.74 or newer. In a workspace, put it under [workspace.lints.clippy] and add [lints] workspace = true to each member.
Clippy's own documentation
What it does
Checks for #[macro_use] use....
Why is this bad?
Since the Rust 2018 edition you can import macro’s directly, this is considered idiomatic.
Example
#[macro_use]
extern crate some_crate;
fn main() {
some_macro!();
}
Use instead:
use some_crate::some_macro;
fn main() {
some_macro!();
}
From the Clippy lint list (0.1.99), part of the Rust project, MIT or Apache-2.0. Official entry.
Related lints
- too_many_linesChecks for functions with a large amount of lines
- missing_errors_docChecks the doc comments of publicly visible functions that return a Result type and warns if there is no # Errors section
- must_use_candidateChecks for public functions that have no #[must_use] attribute, but return something not already marked must-use, have no mutable arg and mutate no statics
- large_stack_arraysallocating a local array larger than 16384 bytes
- large_types_passed_by_valuethis argument (2048 byte) is passed by value, but might be more efficient if passed by reference (limit: 256 byte)
- linkedlistChecks for usage of any LinkedList, suggesting to use a Vec or a VecDeque (formerly called RingBuf)
- manual_assertonly a `panic!` in `if`-then statement
- manual_assert_eqused `assert!` with an equality comparison
- manual_bit_widthmanual implementation of `bit_width`
All 847 Clippy lints · Rust compiler errors · Cargo.toml checker
Up next
Related lintclippy::too_many_linesChecks for functions with a large amount of linesRead it next →Did this answer your question?