This repository was archived by the owner on Apr 5, 2024. It is now read-only.

Description
Consider the following codesample:
#![feature(capture_disjoint_fields)]
fn main() {
let mut t = (10, 10);
let t1 = (&mut t, 10);
let mut c = || {
t1.0.0 += 10;
};
c();
}
The code sample is valid because t1.0 is a mutable reference to t. However today this results in an error saying t1.0.0 is not mutable.
This is because the two things that are looked at are t1 or t1.0.0 which are &(&mut, i32) and i32 respectively which are both immutable.
We need to add extra information in ty::CapturePlace storing if the place can be mutated.