UNUSED_MACRO_RULES in rustc_lint::builtin - Rust
Description: The `unused_macro_rules` lint detects macro rules that were not used.

Skip to main content

## UNUSED_MACRO_RULES

# Static 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 used
        () => { println!("empty") }; // This rule is unused
    }

    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.