about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2020-11-28 17:32:48 +0100
committerRalf Jung <post@ralfj.de>2020-12-20 15:15:29 +0100
commit7f3e18cc2b24214e10df5434972f4f7cd461fa98 (patch)
treed3d4c88182aefa8f27276b87bfa508d17794f779
parentf8d4883dbebf71348abe1134c6f26d48a36256b9 (diff)
downloadrust-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.rs18
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];
 }