#![deny(dead_code)] use std::mem::offset_of; struct Alpha { a: (), b: (), //~ ERROR field `b` is never read c: Beta, } struct Beta { a: (), //~ ERROR field `a` is never read b: (), } struct Gamma { a: (), //~ ERROR field `a` is never read b: (), } struct Delta { a: (), b: (), //~ ERROR field `b` is never read } trait Trait { type Assoc; } impl Trait for () { type Assoc = Delta; } struct Project { a: u8, //~ ERROR field `a` is never read b: ::Assoc, } fn main() { offset_of!(Alpha, a); offset_of!(Alpha, c.b); offset_of!((Gamma,), 0.b); offset_of!(Project::<()>, b.a); }