about summary refs log tree commit diff
path: root/src/liballoc/tests.rs
diff options
context:
space:
mode:
authorJake Goulding <jake.goulding@gmail.com>2019-06-04 08:15:47 -0400
committerJake Goulding <jake.goulding@gmail.com>2019-08-05 10:26:53 -0400
commit32324d22c33dda31eadf49c5f27d6e6ff38a3ef1 (patch)
tree4ceca954cd7f02dfd8000317f3021fb8e4e3dd35 /src/liballoc/tests.rs
parent4be067558962c004b638e4c6f162d50f7c0c98b6 (diff)
downloadrust-32324d22c33dda31eadf49c5f27d6e6ff38a3ef1.tar.gz
rust-32324d22c33dda31eadf49c5f27d6e6ff38a3ef1.zip
Add implementations for converting boxed slices into boxed arrays
This mirrors the implementations of reference slices into arrays.
Diffstat (limited to 'src/liballoc/tests.rs')
-rw-r--r--src/liballoc/tests.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/liballoc/tests.rs b/src/liballoc/tests.rs
index 654eabd0703..ed46ba8a1b9 100644
--- a/src/liballoc/tests.rs
+++ b/src/liballoc/tests.rs
@@ -1,6 +1,7 @@
 //! Test for `boxed` mod.
 
 use core::any::Any;
+use core::convert::TryInto;
 use core::ops::Deref;
 use core::result::Result::{Err, Ok};
 use core::clone::Clone;
@@ -138,3 +139,15 @@ fn boxed_slice_from_iter() {
     assert_eq!(boxed.len(), 100);
     assert_eq!(boxed[7], 7);
 }
+
+#[test]
+fn test_array_from_slice() {
+    let v = vec![1, 2, 3];
+    let r: Box<[u32]> = v.into_boxed_slice();
+
+    let a: Result<Box<[u32; 3]>, _> = r.clone().try_into();
+    assert!(a.is_ok());
+
+    let a: Result<Box<[u32; 2]>, _> = r.clone().try_into();
+    assert!(a.is_err());
+}