Custom dbg!
macros for dbg_macro
lint · Issue #11303 · rust-lang/rust-clippy (original) (raw)
Back in Rust 1.60.0 we added -Wclippy::dbg_macro
to the Linux kernel compilation flags, which worked great with our custom dbg!
macro (essentially the std
one but calling the kernel printing facilities).
However, in the next version (1.61.0), as well as the current stable (1.80.0) and the current nightly (1.83.0-nightly (bd53aa3 2024-09-02)), it does not work. Thus only the first of the following lines emit a warning:
echo 'macro_rules! dbg { () => {} } fn main() { dbg!(); }' | rustup run 1.60.0 clippy-driver -Wclippy::dbg_macro - echo 'macro_rules! dbg { () => {} } fn main() { dbg!(); }' | rustup run 1.61.0 clippy-driver -Wclippy::dbg_macro - echo 'macro_rules! dbg { () => {} } fn main() { dbg!(); }' | rustup run 1.80.0 clippy-driver -Wclippy::dbg_macro - echo 'macro_rules! dbg { () => {} } fn main() { dbg!(); }' | rustup run nightly clippy-driver -Wclippy::dbg_macro -
Is the lint intended to work only with the standard library dbg
macro? I imagine that is the case, given the move to diagnostic items in #7466, but it is not entirely clear from the lint description.
A workaround is to use disallowed_macros
, but that does not have a specialized diagnostic message nor has the nice help:
suggestion. Another is to use rustc_attrs
, but I imagine that is not going to be stable.
Thus, instead, could the dbg_macro
lint take a configuration with paths to dbg!
macros (like disallowed_macros
) or, even better, could there be an attribute that users could apply to their dbg!
macro (like rustc_diagnostic_item
)?
Cc @xFrednet and @Alexendoo who both seemed to work on this in the past.