disallowed_macros
false negatives · Issue #11431 · rust-lang/rust-clippy (original) (raw)
Summary
disallowed_macros
has several false negatives. See reproducer.
Lint Name
disallowed_macros
Reproducer
With clippy.toml
:
disallowed-macros = [ "x::m" ]
And a command line like:
clippy-driver --edition=2021 -Dclippy::disallowed_macros x.rs
This works (similar to an existing test in Clippy):
macro_rules! m ( ($t:tt) => (1) );
fn main() { let _ = m!(42); }
However, this does not:
macro_rules! m ( ($t:tt) => ($t) );
fn main() { let _ = m!(42); }
Nor:
macro_rules! m ( ($t:tt) => ($t + $t) );
fn main() { let _ = m!(42); }
In addition, empty expansions also do not work -- this may be due to the lint not having a pre-expansion part, but still, it would be nice to handle:
macro_rules! m ( ($t:tt) => () );
fn main() { m!(42); }
Version
rustc 1.72.0 (5680fa18f 2023-08-23)
rustc 1.74.0-nightly (84a9f4c6e 2023-08-29)