// Regression test for issue #3645

//@ dont-require-annotations: NOTE

fn main() {
    let n = 1;
    let a = [0; n];
    //~^ ERROR attempt to use a non-constant value in a constant [E0435]
    let b = [0; ()];
    //~^ ERROR mismatched types
    //~| NOTE expected `usize`, found `()`
    let c = [0; true];
    //~^ ERROR mismatched types
    //~| NOTE expected `usize`, found `bool`
    let d = [0; 0.5];
    //~^ ERROR mismatched types
    //~| NOTE expected `usize`, found floating-point number
    let e = [0; "foo"];
    //~^ ERROR mismatched types
    //~| NOTE expected `usize`, found `&str`
    let f = [0; -4_isize];
    //~^ ERROR mismatched types
    //~| NOTE expected `usize`, found `isize`
    //~| NOTE `-4_isize` cannot fit into type `usize`
    let g = [0_usize; -1_isize];
    //~^ ERROR mismatched types
    //~| NOTE expected `usize`, found `isize`
    //~| NOTE `-1_isize` cannot fit into type `usize`
    let h = [0; 4u8];
    //~^ ERROR mismatched types
    //~| NOTE expected `usize`, found `u8`
    struct I {
        i: (),
    }
    let i = [0; I { i: () }];
    //~^ ERROR mismatched types
    //~| NOTE expected `usize`, found `I`
}
