| //@ run-pass | |
| // Repeating a *constant* of non-Copy type (not just a constant expression) is already stable. | |
| const EMPTY: Vec<i32> = Vec::new(); | |
| pub fn bar() -> [Vec<i32>; 2] { | |
| [EMPTY; 2] | |
| } | |
| struct Bomb; | |
| impl Drop for Bomb { | |
| fn drop(&mut self) { | |
| panic!("BOOM!"); | |
| } | |
| } | |
| const BOOM: Bomb = Bomb; | |
| fn main() { | |
| let _x = bar(); | |
| // Make sure the destructor does not get called for empty arrays. `[CONST; N]` should | |
| // instantiate (and then later drop) the const exactly `N` times. | |
| let _x = [BOOM; 0]; | |
| } |