// run-rustfix

#![deny(unused)]

pub struct S {
    pub f1: i32,
}

pub struct Point {
    pub x: i32,
    pub y: i32,
}

pub enum E {
    Variant { field: String }
}

pub fn foo(arg: &E) {
    match arg {
        E::Variant { ref field } => (), //~ ERROR unused variable
    }
}

fn main() {
    let s = S { f1: 123 };
    let S { ref f1 } = s; //~ ERROR unused variable

    let points = vec![Point { x: 1, y: 2 }];
    let _: i32 = points.iter().map(|Point { x, y }| y).sum(); //~ ERROR unused variable

    match (Point { x: 1, y: 2 }) {
        Point { y, ref mut x } => y, //~ ERROR unused variable
    };
}
