#![warn(clippy::manual_bits)] #![allow( clippy::no_effect, clippy::useless_conversion, path_statements, unused_must_use, clippy::unnecessary_operation, clippy::unnecessary_cast )] use std::mem::{size_of, size_of_val}; fn main() { i8::BITS as usize; //~^ manual_bits i16::BITS as usize; //~^ manual_bits i32::BITS as usize; //~^ manual_bits i64::BITS as usize; //~^ manual_bits i128::BITS as usize; //~^ manual_bits isize::BITS as usize; //~^ manual_bits u8::BITS as usize; //~^ manual_bits u16::BITS as usize; //~^ manual_bits u32::BITS as usize; //~^ manual_bits u64::BITS as usize; //~^ manual_bits u128::BITS as usize; //~^ manual_bits usize::BITS as usize; //~^ manual_bits i8::BITS as usize; //~^ manual_bits i16::BITS as usize; //~^ manual_bits i32::BITS as usize; //~^ manual_bits i64::BITS as usize; //~^ manual_bits i128::BITS as usize; //~^ manual_bits isize::BITS as usize; //~^ manual_bits u8::BITS as usize; //~^ manual_bits u16::BITS as usize; //~^ manual_bits u32::BITS as usize; //~^ manual_bits u64::BITS as usize; //~^ manual_bits u128::BITS as usize; //~^ manual_bits usize::BITS as usize; //~^ manual_bits size_of::() * 4; 4 * size_of::(); size_of::() * 8; 8 * size_of::(); size_of_val(&0u32) * 8; type Word = u32; Word::BITS as usize; //~^ manual_bits type Bool = bool; size_of::() * 8; let _: u32 = u128::BITS as u32; //~^ manual_bits let _: u32 = u128::BITS.try_into().unwrap(); //~^ manual_bits let _ = (u128::BITS as usize).pow(5); //~^ manual_bits let _ = &(u128::BITS as usize); //~^ manual_bits } fn should_not_lint() { macro_rules! bits_via_macro { ($T: ty) => { size_of::<$T>() * 8; }; } bits_via_macro!(u8); bits_via_macro!(String); }