You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the WrappingMul trait has a Mul<Self, Output = Self> bound on it. This is incompatible with compile-time large numeric types types that use const generics to increase their width upon multiplication rather than panicking or overflowing, but which may still want to provide a wrapping version of the operation. I propose removing the Output = Self associated type bound from it.
This is not a breaking change.
The text was updated successfully, but these errors were encountered:
It is a breaking change, because users can no longer rely on that equivalence.
use num_traits::WrappingMul;pubtraitWrappingMul2:Sized + std::ops::Mul<Self>{fnwrapping_mul(&self,v:&Self) -> Self;}fnmul<T:WrappingMul>(x:T,y:T) -> T{// We know Mul::Output is T
x * y
}fnmul2<T:WrappingMul2>(x:T,y:T) -> T{
x * y
// ^^^^^ expected type parameter `T`, found associated type}
Currently, the
WrappingMul
trait has aMul<Self, Output = Self>
bound on it. This is incompatible with compile-time large numeric types types that use const generics to increase their width upon multiplication rather than panicking or overflowing, but which may still want to provide a wrapping version of the operation. I propose removing theOutput = Self
associated type bound from it.This is
nota breaking change.The text was updated successfully, but these errors were encountered: