File tree Expand file tree Collapse file tree 1 file changed +4
-21
lines changed Expand file tree Collapse file tree 1 file changed +4
-21
lines changed Original file line number Diff line number Diff line change @@ -894,27 +894,10 @@ impl<A: Array> iter::FromIterator<A::Item> for StackVec<A> {
894
894
895
895
impl < A : Array > Extend < A :: Item > for StackVec < A > {
896
896
fn extend < I : iter:: IntoIterator < Item =A :: Item > > ( & mut self , iterable : I ) {
897
- let mut iter = iterable. into_iter ( ) ;
898
- let ( lower_bound, upper_bound) = iter. size_hint ( ) ;
899
- let upper_bound = upper_bound. expect ( "iterable must provide upper bound." ) ;
900
- assert ! ( self . len( ) + upper_bound <= self . capacity( ) ) ;
901
-
902
- unsafe {
903
- let len = self . len ( ) ;
904
- let ptr = self . as_mut_ptr ( ) . padd ( len) ;
905
- let mut count = 0 ;
906
- while count < lower_bound {
907
- if let Some ( out) = iter. next ( ) {
908
- ptr:: write ( ptr. padd ( count) , out) ;
909
- count += 1 ;
910
- } else {
911
- break ;
912
- }
913
- }
914
- self . set_len ( len + count) ;
915
- }
916
-
917
- for elem in iter {
897
+ // size_hint() has no safety guarantees, and TrustedLen
898
+ // is nightly only, so we can't do any optimizations with
899
+ // size_hint.
900
+ for elem in iterable. into_iter ( ) {
918
901
self . push ( elem) ;
919
902
}
920
903
}
You can’t perform that action at this time.
0 commit comments