File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -405,7 +405,12 @@ impl<A: Arrayish> TinyVec<A> {
405405 A :: Item : Clone ,
406406 {
407407 match self {
408- TinyVec :: Inline ( a) => a. resize ( new_len, new_val) ,
408+ TinyVec :: Inline ( a) => if new_len > A :: CAPACITY {
409+ self . move_to_the_heap ( ) ;
410+ self . resize ( new_len, new_val) ;
411+ } else {
412+ a. resize ( new_len, new_val) ;
413+ } ,
409414 TinyVec :: Heap ( v) => v. resize ( new_len, new_val) ,
410415 }
411416 }
Original file line number Diff line number Diff line change @@ -31,3 +31,10 @@ fn TinyVec_drain() {
3131 assert_eq ! ( Vec :: from_iter( tv. clone( ) . drain( 1 ..=1 ) ) , vec![ 2 ] ) ;
3232 assert_eq ! ( Vec :: from_iter( tv. clone( ) . drain( 1 ..=2 ) ) , vec![ 2 , 3 ] ) ;
3333}
34+
35+ #[ test]
36+ fn TinyVec_resize ( ) {
37+ let mut tv: TinyVec < [ i32 ; 10 ] > = Default :: default ( ) ;
38+ tv. resize ( 20 , 5 ) ;
39+ assert_eq ! ( & tv[ ..] , & [ 5 ; 20 ] ) ;
40+ }
You can’t perform that action at this time.
0 commit comments