2022-12-17 14:16:45 +01:00
|
|
|
#![allow(unused)]
|
|
|
|
|
#![warn(clippy::size_of_ref)]
|
|
|
|
|
|
|
|
|
|
use std::mem::size_of_val;
|
|
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
|
let x = 5;
|
|
|
|
|
let y = &x;
|
|
|
|
|
|
|
|
|
|
size_of_val(&x); // no lint
|
|
|
|
|
size_of_val(y); // no lint
|
|
|
|
|
|
|
|
|
|
size_of_val(&&x);
|
2025-02-11 17:57:08 +01:00
|
|
|
//~^ size_of_ref
|
|
|
|
|
|
2022-12-17 14:16:45 +01:00
|
|
|
size_of_val(&y);
|
2025-02-11 17:57:08 +01:00
|
|
|
//~^ size_of_ref
|
2022-12-17 14:16:45 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
struct S {
|
|
|
|
|
field: u32,
|
|
|
|
|
data: Vec<u8>,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl S {
|
|
|
|
|
/// Get size of object including `self`, in bytes.
|
|
|
|
|
pub fn size(&self) -> usize {
|
|
|
|
|
std::mem::size_of_val(&self) + (std::mem::size_of::<u8>() * self.data.capacity())
|
2025-02-11 17:57:08 +01:00
|
|
|
//~^ size_of_ref
|
2022-12-17 14:16:45 +01:00
|
|
|
}
|
|
|
|
|
}
|