#![deny(dead_code)] struct S { f: i32, //~ ERROR: field is never read sub: Sub, //~ ERROR: field is never read } struct Sub { f: i32, //~ ERROR: field is never read } fn field_write(s: &mut S) { s.f = 1; s.sub.f = 2; } fn main() { let mut s = S { f: 0, sub: Sub { f: 0 } }; field_write(&mut s); auto_deref(); nested_boxes(); } fn auto_deref() { struct E { x: bool, y: bool, //~ ERROR: field is never read } struct P<'a> { e: &'a mut E } impl P<'_> { fn f(&mut self) { self.e.x = true; self.e.y = true; } } let mut e = E { x: false, y: false }; let mut p = P { e: &mut e }; p.f(); assert!(e.x); } fn nested_boxes() { struct A { b: Box, } struct B { c: Box, } struct C { u: u32, //~ ERROR: field is never read v: u32, //~ ERROR: field is never read } let mut a = A { b: Box::new(B { c: Box::new(C { u: 0, v: 0 }), }), }; a.b.c.v = 10; a.b.c = Box::new(C { u: 1, v: 2 }); }