//@aux-build:proc_macros.rs
#![allow(irrefutable_let_patterns, unused)]
#![warn(clippy::redundant_at_rest_pattern)]

#[macro_use]
extern crate proc_macros;

fn main() {
    if let a = [()] {}
    if let ref a = [()] {}
    if let mut a = [()] {}
    if let ref mut a = [()] {}
    let v = vec![()];
    if let a = &*v {}
    let s = &[()];
    if let a = s {}
    // Don't lint
    if let [..] = &*v {}
    if let [a] = &*v {}
    if let [()] = &*v {}
    if let [first, rest @ ..] = &*v {}
    if let a = [()] {}
    external! {
        if let [a @ ..] = [()] {}
    }
}