# Static rustc_lint::builtin::UNUSED_MACRO_RULES

source ·

    pub static UNUSED_MACRO_RULES: &'static Lint

Expand description

The `unused_macro_rules` lint detects macro rules that were not used.

Note that the lint is distinct from the `unused_macros` lint, which fires if the entire macro is never called, while this lint fires for single unused rules of the macro that is otherwise used. `unused_macro_rules` fires only if `unused_macros` wouldn’t fire.

#### §Example

    #[warn(unused_macro_rules)]
    macro_rules! unused_empty {
        (hello) => { println!("Hello, world!") }; // This rule is unused
        () => { println!("empty") }; // This rule is used
    }

    fn main() {
        unused_empty!(hello);
    }

{{produces}}

#### §Explanation

Unused macro rules may signal a mistake or unfinished code. Furthermore, they slow down compilation. Right now, silencing the warning is not supported on a single rule level, so you have to add an allow to the entire macro definition.

If you intended to export the macro to make it available outside of the crate, use the `macro_export` attribute.