@@ -73,14 +73,15 @@ use core::convert::From;
7373use core:: fmt;
7474use core:: future:: Future ;
7575use core:: hash:: { Hash , Hasher } ;
76- use core:: iter:: FusedIterator ;
76+ use core:: iter:: { Iterator , FromIterator , FusedIterator } ;
7777use core:: marker:: { Unpin , Unsize } ;
7878use core:: mem;
7979use core:: pin:: Pin ;
8080use core:: ops:: { CoerceUnsized , DispatchFromDyn , Deref , DerefMut , Generator , GeneratorState } ;
8181use core:: ptr:: { self , NonNull , Unique } ;
8282use core:: task:: { LocalWaker , Poll } ;
8383
84+ use vec:: Vec ;
8485use raw_vec:: RawVec ;
8586use str:: from_boxed_utf8_unchecked;
8687
@@ -699,6 +700,13 @@ impl<T: ?Sized + Unsize<U>, U: ?Sized> CoerceUnsized<Box<U>> for Box<T> {}
699700#[ unstable( feature = "dispatch_from_dyn" , issue = "0" ) ]
700701impl < T : ?Sized + Unsize < U > , U : ?Sized > DispatchFromDyn < Box < U > > for Box < T > { }
701702
703+ #[ stable( feature = "boxed_slice_from_iter" , since = "1.32.0" ) ]
704+ impl < A > FromIterator < A > for Box < [ A ] > {
705+ fn from_iter < T : IntoIterator < Item = A > > ( iter : T ) -> Self {
706+ iter. into_iter ( ) . collect :: < Vec < _ > > ( ) . into_boxed_slice ( )
707+ }
708+ }
709+
702710#[ stable( feature = "box_slice_clone" , since = "1.3.0" ) ]
703711impl < T : Clone > Clone for Box < [ T ] > {
704712 fn clone ( & self ) -> Self {
0 commit comments