diff options
| author | Ralf Jung <post@ralfj.de> | 2020-11-28 17:32:48 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2020-12-20 15:15:29 +0100 |
| commit | 7f3e18cc2b24214e10df5434972f4f7cd461fa98 (patch) | |
| tree | d3d4c88182aefa8f27276b87bfa508d17794f779 | |
| parent | f8d4883dbebf71348abe1134c6f26d48a36256b9 (diff) | |
| download | rust-7f3e18cc2b24214e10df5434972f4f7cd461fa98.tar.gz rust-7f3e18cc2b24214e10df5434972f4f7cd461fa98.zip | |
make sure [CONST; N] drops N times
| -rw-r--r-- | src/test/ui/consts/rfc-2203-const-array-repeat-exprs/const-repeat.rs | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/test/ui/consts/rfc-2203-const-array-repeat-exprs/const-repeat.rs b/src/test/ui/consts/rfc-2203-const-array-repeat-exprs/const-repeat.rs index 11611a94918..65d02317d34 100644 --- a/src/test/ui/consts/rfc-2203-const-array-repeat-exprs/const-repeat.rs +++ b/src/test/ui/consts/rfc-2203-const-array-repeat-exprs/const-repeat.rs @@ -1,4 +1,4 @@ -// check-pass +// run-pass // Repeating a *constant* of non-Copy type (not just a constant expression) is already stable. @@ -8,6 +8,20 @@ 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(); + 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]; } |
