@@ -88,7 +88,7 @@ use core::ops::{
8888use core:: ptr:: { self , NonNull , Unique } ;
8989use core:: task:: { Context , Poll } ;
9090
91- use crate :: alloc:: { Alloc , Global , Layout , handle_alloc_error} ;
91+ use crate :: alloc:: { Alloc , AllocErr , Global , Layout , handle_alloc_error} ;
9292use crate :: vec:: Vec ;
9393use crate :: raw_vec:: RawVec ;
9494use crate :: str:: from_boxed_utf8_unchecked;
@@ -126,7 +126,7 @@ impl<T> Box<T> {
126126 }
127127}
128128
129- impl < T , A : Alloc > Box < T , A > {
129+ impl < T , A : Alloc < Err = AllocErr > > Box < T , A > {
130130 /// Allocates memory in the given allocator and then places `x` into it.
131131 ///
132132 /// This doesn't actually allocate if `T` is zero-sized.
@@ -213,7 +213,7 @@ impl<T: ?Sized> Box<T> {
213213 }
214214}
215215
216- impl < T : ?Sized , A : Alloc > Box < T , A > {
216+ impl < T : ?Sized , A > Box < T , A > {
217217 /// Constructs a box from a raw pointer in the given allocator.
218218 ///
219219 /// This is similar to the [`Box::from_raw`] function, but assumes
@@ -420,29 +420,29 @@ unsafe impl<#[may_dangle] T: ?Sized, A> Drop for Box<T, A> {
420420}
421421
422422#[ stable( feature = "rust1" , since = "1.0.0" ) ]
423- impl < T : Default , A : Alloc + Default > Default for Box < T , A > {
423+ impl < T : Default , A : Alloc < Err = AllocErr > + Default > Default for Box < T , A > {
424424 /// Creates a `Box<T, A>`, with the `Default` value for T.
425425 fn default ( ) -> Box < T , A > {
426426 Box :: new_in ( Default :: default ( ) , A :: default ( ) )
427427 }
428428}
429429
430430#[ stable( feature = "rust1" , since = "1.0.0" ) ]
431- impl < T , A : Alloc + Default > Default for Box < [ T ] , A > {
431+ impl < T , A : Alloc < Err = AllocErr > + Default > Default for Box < [ T ] , A > {
432432 fn default ( ) -> Box < [ T ] , A > {
433433 Box :: < [ T ; 0 ] , A > :: new_in ( [ ] , A :: default ( ) )
434434 }
435435}
436436
437437#[ stable( feature = "default_box_extra" , since = "1.17.0" ) ]
438- impl < A : Alloc + Default > Default for Box < str , A > {
438+ impl < A : Alloc < Err = AllocErr > + Default > Default for Box < str , A > {
439439 fn default ( ) -> Box < str , A > {
440440 unsafe { from_boxed_utf8_unchecked ( Default :: default ( ) ) }
441441 }
442442}
443443
444444#[ stable( feature = "rust1" , since = "1.0.0" ) ]
445- impl < T : Clone , A : Alloc + Clone > Clone for Box < T , A > {
445+ impl < T : Clone , A : Alloc < Err = AllocErr > + Clone > Clone for Box < T , A > {
446446 /// Returns a new box with a `clone()` of this box's contents.
447447 ///
448448 /// # Examples
@@ -474,9 +474,8 @@ impl<T: Clone, A: Alloc + Clone> Clone for Box<T, A> {
474474 }
475475}
476476
477-
478477#[ stable( feature = "box_slice_clone" , since = "1.3.0" ) ]
479- impl < A : Alloc + Clone > Clone for Box < str , A > {
478+ impl < A : Alloc < Err = AllocErr > + Clone > Clone for Box < str , A > {
480479 fn clone ( & self ) -> Self {
481480 // this makes a copy of the data
482481 let buf = Box :: < [ u8 ] , A > :: from_slice_in ( self . as_bytes ( ) , self . 1 . clone ( ) ) ;
@@ -584,7 +583,7 @@ impl<T: ?Sized + Hasher, A> Hasher for Box<T, A> {
584583}
585584
586585#[ stable( feature = "from_for_ptrs" , since = "1.6.0" ) ]
587- impl < T , A : Alloc + Default > From < T > for Box < T , A > {
586+ impl < T , A : Alloc < Err = AllocErr > + Default > From < T > for Box < T , A > {
588587 /// Converts a generic type `T` into a `Box<T>`
589588 ///
590589 /// The conversion allocates on the heap and moves `t`
@@ -612,7 +611,7 @@ impl<T: ?Sized, A> From<Box<T, A>> for Pin<Box<T, A>> {
612611 }
613612}
614613
615- impl < T : Copy , A : Alloc > Box < [ T ] , A > {
614+ impl < T : Copy , A : Alloc < Err = AllocErr > > Box < [ T ] , A > {
616615 fn from_slice_in ( slice : & [ T ] , a : A ) -> Box < [ T ] , A > {
617616 let len = slice. len ( ) ;
618617 let buf = RawVec :: with_capacity_in ( len, a) ;
@@ -624,7 +623,7 @@ impl<T: Copy, A: Alloc> Box<[T], A> {
624623}
625624
626625#[ stable( feature = "box_from_slice" , since = "1.17.0" ) ]
627- impl < T : Copy , A : Alloc + Default > From < & [ T ] > for Box < [ T ] , A > {
626+ impl < T : Copy , A : Alloc < Err = AllocErr > + Default > From < & [ T ] > for Box < [ T ] , A > {
628627 /// Converts a `&[T]` into a `Box<[T]>`
629628 ///
630629 /// This conversion allocates on the heap
@@ -644,7 +643,7 @@ impl<T: Copy, A: Alloc + Default> From<&[T]> for Box<[T], A> {
644643}
645644
646645#[ stable( feature = "box_from_slice" , since = "1.17.0" ) ]
647- impl < A : Alloc + Default > From < & str > for Box < str , A > {
646+ impl < A : Alloc < Err = AllocErr > + Default > From < & str > for Box < str , A > {
648647 /// Converts a `&str` into a `Box<str>`
649648 ///
650649 /// This conversion allocates on the heap
@@ -662,7 +661,7 @@ impl<A: Alloc + Default> From<&str> for Box<str, A> {
662661}
663662
664663#[ stable( feature = "boxed_str_conv" , since = "1.19.0" ) ]
665- impl < A : Alloc > From < Box < str , A > > for Box < [ u8 ] , A > {
664+ impl < A > From < Box < str , A > > for Box < [ u8 ] , A > {
666665 /// Converts a `Box<str>>` into a `Box<[u8]>`
667666 ///
668667 /// This conversion does not allocate on the heap and happens in place.
@@ -685,7 +684,7 @@ impl<A: Alloc> From<Box<str, A>> for Box<[u8], A> {
685684 }
686685}
687686
688- impl < A : Alloc > Box < dyn Any , A > {
687+ impl < A > Box < dyn Any , A > {
689688 #[ inline]
690689 #[ stable( feature = "rust1" , since = "1.0.0" ) ]
691690 /// Attempt to downcast the box to a concrete type.
@@ -716,7 +715,7 @@ impl<A: Alloc> Box<dyn Any, A> {
716715 }
717716}
718717
719- impl < A : Alloc > Box < dyn Any + Send , A > {
718+ impl < A : Alloc < Err = AllocErr > > Box < dyn Any + Send , A > {
720719 #[ inline]
721720 #[ stable( feature = "rust1" , since = "1.0.0" ) ]
722721 /// Attempt to downcast the box to a concrete type.
@@ -941,7 +940,7 @@ impl<A> FromIterator<A> for Box<[A]> {
941940}
942941
943942#[ stable( feature = "box_slice_clone" , since = "1.3.0" ) ]
944- impl < T : Clone , A : Alloc + Clone > Clone for Box < [ T ] , A > {
943+ impl < T : Clone , A : Alloc < Err = AllocErr > + Clone > Clone for Box < [ T ] , A > {
945944 fn clone ( & self ) -> Self {
946945 let mut new = BoxBuilder {
947946 data : RawVec :: with_capacity_in ( self . len ( ) , self . 1 . clone ( ) ) ,
@@ -962,20 +961,20 @@ impl<T: Clone, A: Alloc + Clone> Clone for Box<[T], A> {
962961 return unsafe { new. into_box ( ) } ;
963962
964963 // Helper type for responding to panics correctly.
965- struct BoxBuilder < T , A : Alloc > {
964+ struct BoxBuilder < T , A : Alloc < Err = AllocErr > > {
966965 data : RawVec < T , A > ,
967966 len : usize ,
968967 }
969968
970- impl < T , A : Alloc > BoxBuilder < T , A > {
969+ impl < T , A : Alloc < Err = AllocErr > > BoxBuilder < T , A > {
971970 unsafe fn into_box ( self ) -> Box < [ T ] , A > {
972971 let raw = ptr:: read ( & self . data ) ;
973972 mem:: forget ( self ) ;
974973 raw. into_box ( )
975974 }
976975 }
977976
978- impl < T , A : Alloc > Drop for BoxBuilder < T , A > {
977+ impl < T , A : Alloc < Err = AllocErr > > Drop for BoxBuilder < T , A > {
979978 fn drop ( & mut self ) {
980979 let mut data = self . data . ptr ( ) ;
981980 let max = unsafe { data. add ( self . len ) } ;
0 commit comments