File tree Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Expand file tree Collapse file tree 1 file changed +14
-0
lines changed Original file line number Diff line number Diff line change 11//@compile-flags: -Zmiri-strict-provenance
2+ #![ feature( iter_advance_by, iter_next_chunk) ]
3+
24// Gather all references from a mutable iterator and make sure Miri notices if
35// using them is dangerous.
46fn test_all_refs < ' a , T : ' a > ( dummy : & mut T , iter : impl Iterator < Item = & ' a mut T > ) {
@@ -44,6 +46,18 @@ fn vec_into_iter_zst() {
4446 for _ in vec ! [ [ 0u64 ; 0 ] ] . into_iter ( ) { }
4547 let v = vec ! [ [ 0u64 ; 0 ] , [ 0u64 ; 0 ] ] . into_iter ( ) . map ( |x| x. len ( ) ) . sum :: < usize > ( ) ;
4648 assert_eq ! ( v, 0 ) ;
49+
50+ let mut it = vec ! [ [ 0u64 ; 0 ] , [ 0u64 ; 0 ] ] . into_iter ( ) ;
51+ it. advance_by ( 1 ) ;
52+ drop ( it) ;
53+
54+ let mut it = vec ! [ [ 0u64 ; 0 ] , [ 0u64 ; 0 ] ] . into_iter ( ) ;
55+ it. next_chunk :: < 1 > ( ) . unwrap ( ) ;
56+ drop ( it) ;
57+
58+ let mut it = vec ! [ [ 0u64 ; 0 ] , [ 0u64 ; 0 ] ] . into_iter ( ) ;
59+ it. next_chunk :: < 4 > ( ) . unwrap_err ( ) ;
60+ drop ( it) ;
4761}
4862
4963fn vec_into_iter_rev_zst ( ) {
You can’t perform that action at this time.
0 commit comments