| // 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` | |
| } |