// edition:2021 // run-pass // Test that we can immutably borrow field of an instance of a structure from within a closure, // while having a mutable borrow to another field of the same instance outside the closure. struct Point { x: i32, y: i32, } fn main() { let mut p = Point { x: 10, y: 10 }; let c = || { println!("{}", p.x); }; // `c` should only capture `p.x`, therefore mutating `p.y` is allowed. let py = &mut p.y; c(); *py = 20; }