fn main () {
    struct Foo { a: bool };

    let f = Foo(); //~ ERROR E0423
}

fn bar() {
    struct S { x: i32, y: i32 }
    #[derive(PartialEq)]
    struct T {}

    if let S { x: _x, y: 2 } = S { x: 1, y: 2 } { println!("Ok"); }
    //~^ ERROR E0423
    //~|  expected type, found `1`
    if T {} == T {} { println!("Ok"); }
    //~^ ERROR E0423
    //~| ERROR expected expression, found `==`
}

fn foo() {
    for _ in std::ops::Range { start: 0, end: 10 } {}
    //~^ ERROR E0423
    //~| ERROR expected type, found `0`
}
