#![deny(clippy::index_refutable_slice)]

macro_rules! if_let_slice_macro {
    () => {
        // This would normally be linted
        let slice: Option<&[u32]> = Some(&[1, 2, 3]);
        if let Some(slice) = slice {
            println!("{}", slice[0]);
        }
    };
}

fn main() {
    // Don't lint this
    if_let_slice_macro!();

    // Do lint this
    let slice: Option<&[u32]> = Some(&[1, 2, 3]);
    if let Some([slice_0, ..]) = slice {
        //~^ ERROR: this binding can be a slice pattern to avoid indexing
        println!("{}", slice_0);
    }
}
