diff --git a/complex/src/lib.rs b/complex/src/lib.rs index cba2f3b..ba00743 100644 --- a/complex/src/lib.rs +++ b/complex/src/lib.rs @@ -417,8 +417,8 @@ impl<'a, T: Clone + Num> From<&'a T> for Complex { } macro_rules! forward_ref_ref_binop { - (impl $imp:ident, $method:ident, $($dep:ident),*) => { - impl<'a, 'b, T: Clone + Num $(+ $dep)*> $imp<&'b Complex> for &'a Complex { + (impl $imp:ident, $method:ident) => { + impl<'a, 'b, T: Clone + Num> $imp<&'b Complex> for &'a Complex { type Output = Complex; #[inline] @@ -430,8 +430,8 @@ macro_rules! forward_ref_ref_binop { } macro_rules! forward_ref_val_binop { - (impl $imp:ident, $method:ident, $($dep:ident),*) => { - impl<'a, T: Clone + Num $(+ $dep)*> $imp> for &'a Complex { + (impl $imp:ident, $method:ident) => { + impl<'a, T: Clone + Num> $imp> for &'a Complex { type Output = Complex; #[inline] @@ -443,8 +443,8 @@ macro_rules! forward_ref_val_binop { } macro_rules! forward_val_ref_binop { - (impl $imp:ident, $method:ident, $($dep:ident),*) => { - impl<'a, T: Clone + Num $(+ $dep)*> $imp<&'a Complex> for Complex { + (impl $imp:ident, $method:ident) => { + impl<'a, T: Clone + Num> $imp<&'a Complex> for Complex { type Output = Complex; #[inline] @@ -456,15 +456,15 @@ macro_rules! forward_val_ref_binop { } macro_rules! forward_all_binop { - (impl $imp:ident, $method:ident, $($dep:ident),*) => { - forward_ref_ref_binop!(impl $imp, $method, $($dep),*); - forward_ref_val_binop!(impl $imp, $method, $($dep),*); - forward_val_ref_binop!(impl $imp, $method, $($dep),*); + (impl $imp:ident, $method:ident) => { + forward_ref_ref_binop!(impl $imp, $method); + forward_ref_val_binop!(impl $imp, $method); + forward_val_ref_binop!(impl $imp, $method); }; } /* arithmetic */ -forward_all_binop!(impl Add, add, ); +forward_all_binop!(impl Add, add); // (a + i b) + (c + i d) == (a + c) + i (b + d) impl Add> for Complex { @@ -476,7 +476,7 @@ impl Add> for Complex { } } -forward_all_binop!(impl Sub, sub, ); +forward_all_binop!(impl Sub, sub); // (a + i b) - (c + i d) == (a - c) + i (b - d) impl Sub> for Complex { @@ -488,7 +488,7 @@ impl Sub> for Complex { } } -forward_all_binop!(impl Mul, mul, ); +forward_all_binop!(impl Mul, mul); // (a + i b) * (c + i d) == (a*c - b*d) + i (a*d + b*c) impl Mul> for Complex { @@ -502,7 +502,7 @@ impl Mul> for Complex { } } -forward_all_binop!(impl Div, div, ); +forward_all_binop!(impl Div, div); // (a + i b) / (c + i d) == [(a + i b) * (c - i d)] / (c*c + d*d) // == [(a*c + b*d) / (c*c + d*d)] + i [(b*c - a*d) / (c*c + d*d)] @@ -518,11 +518,11 @@ impl Div> for Complex { } } -forward_all_binop!(impl Rem, rem, PartialOrd); +forward_all_binop!(impl Rem, rem); // Attempts to identify the gaussian integer whose product with `modulus` // is closest to `self`. -impl Rem> for Complex { +impl Rem> for Complex { type Output = Complex; #[inline] @@ -570,7 +570,7 @@ mod opassign { } } - impl RemAssign for Complex { + impl RemAssign for Complex { fn rem_assign(&mut self, other: Complex) { *self = self.clone() % other; } @@ -602,7 +602,7 @@ mod opassign { } } - impl RemAssign for Complex { + impl RemAssign for Complex { fn rem_assign(&mut self, other: T) { *self = self.clone() % other; } @@ -630,13 +630,13 @@ mod opassign { forward_op_assign!(impl MulAssign, mul_assign); forward_op_assign!(impl DivAssign, div_assign); - impl<'a, T: Clone + NumAssign + PartialOrd> RemAssign<&'a Complex> for Complex { + impl<'a, T: Clone + NumAssign> RemAssign<&'a Complex> for Complex { #[inline] fn rem_assign(&mut self, other: &Complex) { self.rem_assign(other.clone()) } } - impl<'a, T: Clone + NumAssign + PartialOrd> RemAssign<&'a T> for Complex { + impl<'a, T: Clone + NumAssign> RemAssign<&'a T> for Complex { #[inline] fn rem_assign(&mut self, other: &T) { self.rem_assign(other.clone()) @@ -663,8 +663,8 @@ impl<'a, T: Clone + Num + Neg> Neg for &'a Complex { } macro_rules! real_arithmetic { - (@forward $imp:ident::$method:ident for $($real:ident),*: $($dep:ident),*) => ( - impl<'a, T: Clone + Num $(+ $dep)*> $imp<&'a T> for Complex { + (@forward $imp:ident::$method:ident for $($real:ident),*) => ( + impl<'a, T: Clone + Num> $imp<&'a T> for Complex { type Output = Complex; #[inline] @@ -672,7 +672,7 @@ macro_rules! real_arithmetic { self.$method(other.clone()) } } - impl<'a, T: Clone + Num $(+ $dep)*> $imp for &'a Complex { + impl<'a, T: Clone + Num> $imp for &'a Complex { type Output = Complex; #[inline] @@ -680,7 +680,7 @@ macro_rules! real_arithmetic { self.clone().$method(other) } } - impl<'a, 'b, T: Clone + Num $(+ $dep)*> $imp<&'a T> for &'b Complex { + impl<'a, 'b, T: Clone + Num> $imp<&'a T> for &'b Complex { type Output = Complex; #[inline] @@ -716,11 +716,11 @@ macro_rules! real_arithmetic { )* ); ($($real:ident),*) => ( - real_arithmetic!(@forward Add::add for $($real),*: ); - real_arithmetic!(@forward Sub::sub for $($real),*: ); - real_arithmetic!(@forward Mul::mul for $($real),*: ); - real_arithmetic!(@forward Div::div for $($real),*: ); - real_arithmetic!(@forward Rem::rem for $($real),*: PartialOrd); + real_arithmetic!(@forward Add::add for $($real),*); + real_arithmetic!(@forward Sub::sub for $($real),*); + real_arithmetic!(@forward Mul::mul for $($real),*); + real_arithmetic!(@forward Div::div for $($real),*); + real_arithmetic!(@forward Rem::rem for $($real),*); $( impl Add> for $real { @@ -810,7 +810,7 @@ impl Div for Complex { } } -impl Rem for Complex { +impl Rem for Complex { type Output = Complex; #[inline] @@ -1037,7 +1037,7 @@ impl FromStr for Complex where } } -impl Num for Complex { +impl Num for Complex { type FromStrRadixErr = ParseComplexError; /// Parses `a +/- bi`; `ai +/- b`; `a`; or `bi` where `a` and `b` are of type `T`