@@ -88,7 +88,7 @@ use core::ops::{
88
88
use core:: ptr:: { self , NonNull , Unique } ;
89
89
use core:: task:: { Context , Poll } ;
90
90
91
- use crate :: alloc:: { Alloc , Global , Layout , handle_alloc_error} ;
91
+ use crate :: alloc:: { Alloc , AllocErr , Global , Layout , handle_alloc_error} ;
92
92
use crate :: vec:: Vec ;
93
93
use crate :: raw_vec:: RawVec ;
94
94
use crate :: str:: from_boxed_utf8_unchecked;
@@ -126,7 +126,7 @@ impl<T> Box<T> {
126
126
}
127
127
}
128
128
129
- impl < T , A : Alloc > Box < T , A > {
129
+ impl < T , A : Alloc < Err = AllocErr > > Box < T , A > {
130
130
/// Allocates memory in the given allocator and then places `x` into it.
131
131
///
132
132
/// This doesn't actually allocate if `T` is zero-sized.
@@ -213,7 +213,7 @@ impl<T: ?Sized> Box<T> {
213
213
}
214
214
}
215
215
216
- impl < T : ?Sized , A : Alloc > Box < T , A > {
216
+ impl < T : ?Sized , A > Box < T , A > {
217
217
/// Constructs a box from a raw pointer in the given allocator.
218
218
///
219
219
/// 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> {
420
420
}
421
421
422
422
#[ 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 > {
424
424
/// Creates a `Box<T, A>`, with the `Default` value for T.
425
425
fn default ( ) -> Box < T , A > {
426
426
Box :: new_in ( Default :: default ( ) , A :: default ( ) )
427
427
}
428
428
}
429
429
430
430
#[ 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 > {
432
432
fn default ( ) -> Box < [ T ] , A > {
433
433
Box :: < [ T ; 0 ] , A > :: new_in ( [ ] , A :: default ( ) )
434
434
}
435
435
}
436
436
437
437
#[ 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 > {
439
439
fn default ( ) -> Box < str , A > {
440
440
unsafe { from_boxed_utf8_unchecked ( Default :: default ( ) ) }
441
441
}
442
442
}
443
443
444
444
#[ 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 > {
446
446
/// Returns a new box with a `clone()` of this box's contents.
447
447
///
448
448
/// # Examples
@@ -474,9 +474,8 @@ impl<T: Clone, A: Alloc + Clone> Clone for Box<T, A> {
474
474
}
475
475
}
476
476
477
-
478
477
#[ 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 > {
480
479
fn clone ( & self ) -> Self {
481
480
// this makes a copy of the data
482
481
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> {
584
583
}
585
584
586
585
#[ 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 > {
588
587
/// Converts a generic type `T` into a `Box<T>`
589
588
///
590
589
/// 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>> {
612
611
}
613
612
}
614
613
615
- impl < T : Copy , A : Alloc > Box < [ T ] , A > {
614
+ impl < T : Copy , A : Alloc < Err = AllocErr > > Box < [ T ] , A > {
616
615
fn from_slice_in ( slice : & [ T ] , a : A ) -> Box < [ T ] , A > {
617
616
let len = slice. len ( ) ;
618
617
let buf = RawVec :: with_capacity_in ( len, a) ;
@@ -624,7 +623,7 @@ impl<T: Copy, A: Alloc> Box<[T], A> {
624
623
}
625
624
626
625
#[ 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 > {
628
627
/// Converts a `&[T]` into a `Box<[T]>`
629
628
///
630
629
/// This conversion allocates on the heap
@@ -644,7 +643,7 @@ impl<T: Copy, A: Alloc + Default> From<&[T]> for Box<[T], A> {
644
643
}
645
644
646
645
#[ 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 > {
648
647
/// Converts a `&str` into a `Box<str>`
649
648
///
650
649
/// This conversion allocates on the heap
@@ -662,7 +661,7 @@ impl<A: Alloc + Default> From<&str> for Box<str, A> {
662
661
}
663
662
664
663
#[ 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 > {
666
665
/// Converts a `Box<str>>` into a `Box<[u8]>`
667
666
///
668
667
/// 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> {
685
684
}
686
685
}
687
686
688
- impl < A : Alloc > Box < dyn Any , A > {
687
+ impl < A > Box < dyn Any , A > {
689
688
#[ inline]
690
689
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
691
690
/// Attempt to downcast the box to a concrete type.
@@ -716,7 +715,7 @@ impl<A: Alloc> Box<dyn Any, A> {
716
715
}
717
716
}
718
717
719
- impl < A : Alloc > Box < dyn Any + Send , A > {
718
+ impl < A : Alloc < Err = AllocErr > > Box < dyn Any + Send , A > {
720
719
#[ inline]
721
720
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
722
721
/// Attempt to downcast the box to a concrete type.
@@ -941,7 +940,7 @@ impl<A> FromIterator<A> for Box<[A]> {
941
940
}
942
941
943
942
#[ 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 > {
945
944
fn clone ( & self ) -> Self {
946
945
let mut new = BoxBuilder {
947
946
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> {
962
961
return unsafe { new. into_box ( ) } ;
963
962
964
963
// Helper type for responding to panics correctly.
965
- struct BoxBuilder < T , A : Alloc > {
964
+ struct BoxBuilder < T , A : Alloc < Err = AllocErr > > {
966
965
data : RawVec < T , A > ,
967
966
len : usize ,
968
967
}
969
968
970
- impl < T , A : Alloc > BoxBuilder < T , A > {
969
+ impl < T , A : Alloc < Err = AllocErr > > BoxBuilder < T , A > {
971
970
unsafe fn into_box ( self ) -> Box < [ T ] , A > {
972
971
let raw = ptr:: read ( & self . data ) ;
973
972
mem:: forget ( self ) ;
974
973
raw. into_box ( )
975
974
}
976
975
}
977
976
978
- impl < T , A : Alloc > Drop for BoxBuilder < T , A > {
977
+ impl < T , A : Alloc < Err = AllocErr > > Drop for BoxBuilder < T , A > {
979
978
fn drop ( & mut self ) {
980
979
let mut data = self . data . ptr ( ) ;
981
980
let max = unsafe { data. add ( self . len ) } ;
0 commit comments