macro_rules! declare_tool_lint {
    (
        $(#[$attr:meta])* $vis:vis $tool:ident :: $NAME:ident, $Level:ident,
        $desc:expr
    ) => { ... };
    (
        $(#[$attr:meta])* $vis:vis $tool:ident :: $NAME:ident, $Level:ident,
        $desc:expr, report_in_external_macro : $rep:expr
    ) => { ... };
    (
        $(#[$attr:meta])* $vis:vis $tool:ident :: $NAME:ident, $Level:ident,
        $desc:expr, $external:expr
    ) => { ... };
}