Skip to content

dbg_macro does not catch invocation inside macro #7274

@gthb

Description

@gthb

Lint name: dbg_macro

I tried this code:

pub fn main() {
    // dbg!(1);
    MyThing.foo();
}

trait Thing<'b> {
    fn foo(&self);
}

macro_rules! define_thing {
    ($thing:ident, $body:expr) => {
        impl<'a> Thing<'a> for $thing {
            fn foo<'b>(&self) {
                $body
            }
        }
    };
}

struct MyThing;
define_thing!(MyThing, {
    dbg!(2);
});

I expected to see (by enabling clippy::dbg_macro) a full-throated rejection of that dbg!(2) macro invocation, something like:

$ cargo clippy -- -F clippy::dbg_macro
...
error: `dbg!` macro is intended as a debugging tool
 --> src/main.rs:22:5
  |
22|     dbg!(2);
  |     ^^^^^^^
  |
  = note: requested on the command line with `-F clippy::dbg-macro`
  = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#dbg_macro

... like I do get for the dbg!(1); invocation if I uncomment that.

Instead, I get no clippy warnings/errors.

Meta

  • cargo clippy -V: clippy 0.1.52 (9bc8c42b 2021-05-09)
  • rustc -Vv:
    rustc 1.52.1 (9bc8c42bb 2021-05-09)
    binary: rustc
    commit-hash: 9bc8c42bb2f19e745a63f3445f1ac248fb015e53
    commit-date: 2021-05-09
    host: x86_64-apple-darwin
    release: 1.52.1
    LLVM version: 12.0.0
    

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: Clippy is not doing the correct thingI-false-negativeIssue: The lint should have been triggered on code, but wasn't

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions