Attempt at fixing E0411 on older rust versions

This commit is contained in:
Yoan Lecoq 2017-04-21 10:31:29 +02:00
parent b024e1c326
commit 9b06d4a0bb
2 changed files with 5 additions and 5 deletions

View File

@ -51,7 +51,7 @@ zero_impl!(i64, 0i64);
zero_impl!(f32, 0.0f32);
zero_impl!(f64, 0.0f64);
impl<T: Zero + PartialEq> Zero for Wrapping<T> where Self: Add<Output=Self> {
impl<T: Zero + PartialEq> Zero for Wrapping<T> where Wrapping<T>: Add<Output=Wrapping<T>> {
fn is_zero(&self) -> bool {
self.0 == T::zero()
}
@ -105,7 +105,7 @@ one_impl!(i64, 1i64);
one_impl!(f32, 1.0f32);
one_impl!(f64, 1.0f64);
impl<T: One> One for Wrapping<T> where Self: Add<Output=Self> + Mul<Output=Self> {
impl<T: One> One for Wrapping<T> where Wrapping<T>: Add<Output=Wrapping<T>> + Mul<Output=Wrapping<T>> {
fn one() -> Self {
Wrapping(T::one())
}

View File

@ -76,9 +76,9 @@ macro_rules! int_trait_impl {
int_trait_impl!(Num for usize u8 u16 u32 u64 isize i8 i16 i32 i64);
impl<T: Num> Num for Wrapping<T>
where Self: Zero + One
+ Add<Output = Self> + Sub<Output = Self>
+ Mul<Output = Self> + Div<Output = Self> + Rem<Output = Self>
where Wrapping<T>: Zero + One
+ Add<Output = Wrapping<T>> + Sub<Output = Wrapping<T>>
+ Mul<Output = Wrapping<T>> + Div<Output = Wrapping<T>> + Rem<Output = Wrapping<T>>
{
type FromStrRadixErr = T::FromStrRadixErr;
fn from_str_radix(str: &str, radix: u32) -> Result<Self, Self::FromStrRadixErr> {