// aux-build:macro_rules.rs

#![warn(clippy::toplevel_ref_arg)]
#![allow(unused)]

#[macro_use]
extern crate macro_rules;

fn the_answer(ref mut x: u8) {
    *x = 42;
}

macro_rules! gen_function {
    () => {
        fn fun_example(ref _x: usize) {}
    };
}

fn main() {
    let mut x = 0;
    the_answer(x);

    // lint in macro
    #[allow(unused)]
    {
        gen_function!();
    }

    // do not lint in external macro
    {
        ref_arg_function!();
    }
}