summary refs log tree commit diff
path: root/library/alloc/tests
diff options
context:
space:
mode:
authorThe 8472 <git@infinite-source.de>2023-04-29 15:53:26 +0200
committerThe 8472 <git@infinite-source.de>2023-09-03 19:59:47 +0200
commit439f63019fccbbdcc00074856f67ce6af2abcac2 (patch)
tree7034b97da8119fc41ba1a4fa966870e2f9e18425 /library/alloc/tests
parent7047fb41b6567a43bb2239035c114084807845f6 (diff)
downloadrust-439f63019fccbbdcc00074856f67ce6af2abcac2.tar.gz
rust-439f63019fccbbdcc00074856f67ce6af2abcac2.zip
support in-place collecting additional FlatMap shapes
Diffstat (limited to 'library/alloc/tests')
-rw-r--r--library/alloc/tests/vec.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/library/alloc/tests/vec.rs b/library/alloc/tests/vec.rs
index 33dd2658e1e..c545f47a5d1 100644
--- a/library/alloc/tests/vec.rs
+++ b/library/alloc/tests/vec.rs
@@ -1212,6 +1212,17 @@ fn test_in_place_specialization_step_up_down() {
     let sink_bytes = sink.capacity() * 4;
     assert_ne!(src_bytes, sink_bytes);
     assert_eq!(sink.len(), 2);
+
+    let src = vec![[0u8; 4]; 256];
+    let srcptr = src.as_ptr();
+    let iter = src
+        .into_iter()
+        .flat_map(|a| {
+            a.into_iter().map(|b| b.wrapping_add(1))
+        });
+    assert_in_place_trait(&iter);
+    let sink = iter.collect::<Vec<_>>();
+    assert_eq!(srcptr as *const u8, sink.as_ptr());
 }
 
 #[test]