| #![warn(clippy::manual_bit_width)] | |
| use core::num::{self, NonZero, NonZeroI32, NonZeroU32}; | |
| fn main() { | |
| // `T::BITS - x.leading_zeros()` | |
| // unsigned | |
| let w: u8 = 5; | |
| let _ = w.bit_width(); //~ manual_bit_width | |
| let w: u16 = 5; | |
| let _ = w.bit_width(); //~ manual_bit_width | |
| let w: u32 = 5; | |
| let _ = w.bit_width(); //~ manual_bit_width | |
| let w: u64 = 5; | |
| let _ = w.bit_width(); //~ manual_bit_width | |
| let w: usize = 5; | |
| let _ = w.bit_width(); //~ manual_bit_width | |
| // signed | |
| let x: i8 = -5; | |
| let _ = x.cast_unsigned().bit_width(); //~ manual_bit_width | |
| let x: i16 = -5; | |
| let _ = x.cast_unsigned().bit_width(); //~ manual_bit_width | |
| let x: i32 = -5; | |
| let _ = x.cast_unsigned().bit_width(); //~ manual_bit_width | |
| let x: i64 = -5; | |
| let _ = x.cast_unsigned().bit_width(); //~ manual_bit_width | |
| let x: isize = -5; | |
| let _ = x.cast_unsigned().bit_width(); //~ manual_bit_width | |
| // `NonZero::<T>::BITS - x.leading_zeros()` | |
| // unsigned | |
| let y = NonZero::<u8>::new(5).unwrap(); | |
| let _ = y.bit_width().get(); //~ manual_bit_width | |
| let y = NonZero::<u16>::new(5).unwrap(); | |
| let _ = y.bit_width().get(); //~ manual_bit_width | |
| let y = NonZero::<u32>::new(5).unwrap(); | |
| let _ = y.bit_width().get(); //~ manual_bit_width | |
| let y = NonZero::<u64>::new(5).unwrap(); | |
| let _ = y.bit_width().get(); //~ manual_bit_width | |
| let y = NonZero::<usize>::new(5).unwrap(); | |
| let _ = y.bit_width().get(); //~ manual_bit_width | |
| // signed | |
| let z = NonZero::<i8>::new(-5).unwrap(); | |
| let _ = z.cast_unsigned().bit_width().get(); //~ manual_bit_width | |
| let z = NonZero::<i16>::new(-5).unwrap(); | |
| let _ = z.cast_unsigned().bit_width().get(); //~ manual_bit_width | |
| let z = NonZero::<i32>::new(-5).unwrap(); | |
| let _ = z.cast_unsigned().bit_width().get(); //~ manual_bit_width | |
| let z = NonZero::<i64>::new(-5).unwrap(); | |
| let _ = z.cast_unsigned().bit_width().get(); //~ manual_bit_width | |
| let z = NonZero::<isize>::new(-5).unwrap(); | |
| let _ = z.cast_unsigned().bit_width().get(); //~ manual_bit_width | |
| // negative cases. | |
| // left expression is a literal | |
| let z: u32 = 1_000_000 - x.leading_zeros(); | |
| } |