99
1010#![ stable( feature = "rust1" , since = "1.0.0" ) ]
1111
12+ use core:: array:: LengthAtMost32 ;
1213use core:: cmp:: { self , Ordering } ;
1314use core:: fmt;
1415use core:: iter:: { repeat_with, FromIterator , FusedIterator } ;
@@ -2571,13 +2572,14 @@ impl<A: PartialEq> PartialEq for VecDeque<A> {
25712572impl < A : Eq > Eq for VecDeque < A > { }
25722573
25732574macro_rules! __impl_slice_eq1 {
2574- ( $Lhs: ty, $Rhs: ty) => {
2575- __impl_slice_eq1! { $Lhs, $Rhs, Sized }
2576- } ;
2577- ( $Lhs: ty, $Rhs: ty, $Bound: ident) => {
2575+ ( [ $( $vars: tt) * ] $lhs: ty, $rhs: ty, $( $constraints: tt) * ) => {
25782576 #[ stable( feature = "vec_deque_partial_eq_slice" , since = "1.17.0" ) ]
2579- impl <A : $Bound, B > PartialEq <$Rhs> for $Lhs where A : PartialEq <B > {
2580- fn eq( & self , other: & $Rhs) -> bool {
2577+ impl <A , B , $( $vars) * > PartialEq <$rhs> for $lhs
2578+ where
2579+ A : PartialEq <B >,
2580+ $( $constraints) *
2581+ {
2582+ fn eq( & self , other: & $rhs) -> bool {
25812583 if self . len( ) != other. len( ) {
25822584 return false ;
25832585 }
@@ -2589,26 +2591,12 @@ macro_rules! __impl_slice_eq1 {
25892591 }
25902592}
25912593
2592- __impl_slice_eq1 ! { VecDeque <A >, Vec <B > }
2593- __impl_slice_eq1 ! { VecDeque <A >, & [ B ] }
2594- __impl_slice_eq1 ! { VecDeque <A >, & mut [ B ] }
2595-
2596- macro_rules! array_impls {
2597- ( $( $N: expr) +) => {
2598- $(
2599- __impl_slice_eq1! { VecDeque <A >, [ B ; $N] }
2600- __impl_slice_eq1! { VecDeque <A >, & [ B ; $N] }
2601- __impl_slice_eq1! { VecDeque <A >, & mut [ B ; $N] }
2602- ) +
2603- }
2604- }
2605-
2606- array_impls ! {
2607- 0 1 2 3 4 5 6 7 8 9
2608- 10 11 12 13 14 15 16 17 18 19
2609- 20 21 22 23 24 25 26 27 28 29
2610- 30 31 32
2611- }
2594+ __impl_slice_eq1 ! { [ ] VecDeque <A >, Vec <B >, }
2595+ __impl_slice_eq1 ! { [ ] VecDeque <A >, & [ B ] , }
2596+ __impl_slice_eq1 ! { [ ] VecDeque <A >, & mut [ B ] , }
2597+ __impl_slice_eq1 ! { [ const N : usize ] VecDeque <A >, [ B ; N ] , [ B ; N ] : LengthAtMost32 }
2598+ __impl_slice_eq1 ! { [ const N : usize ] VecDeque <A >, & [ B ; N ] , [ B ; N ] : LengthAtMost32 }
2599+ __impl_slice_eq1 ! { [ const N : usize ] VecDeque <A >, & mut [ B ; N ] , [ B ; N ] : LengthAtMost32 }
26122600
26132601#[ stable( feature = "rust1" , since = "1.0.0" ) ]
26142602impl < A : PartialOrd > PartialOrd for VecDeque < A > {
0 commit comments