//@ edition:2021 | |
//@ run-pass | |
// Test that we can immutably borrow an element of a tuple from within a closure, | |
// while having a mutable borrow to another element of the same tuple outside the closure. | |
#![feature(rustc_attrs)] | |
fn main() { | |
let mut t = (10, 10); | |
let c = || { | |
println!("{}", t.0); | |
}; | |
// `c` only captures t.0, therefore mutating t.1 is allowed. | |
let t1 = &mut t.1; | |
c(); | |
*t1 = 20; | |
} |