2017-10-06 15:30:23 -05:00
|
|
|
// Verify the binding mode shifts - only when no `&` are auto-dereferenced is the
|
|
|
|
// final default binding mode mutable.
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
match &&Some(5i32) {
|
|
|
|
Some(n) => {
|
2021-07-02 11:29:49 -05:00
|
|
|
*n += 1; //~ ERROR cannot assign to `*n`, which is behind a `&` reference
|
2017-10-06 15:30:23 -05:00
|
|
|
let _ = n;
|
|
|
|
}
|
|
|
|
None => {},
|
|
|
|
};
|
|
|
|
|
|
|
|
match &mut &Some(5i32) {
|
|
|
|
Some(n) => {
|
2021-07-02 11:29:49 -05:00
|
|
|
*n += 1; //~ ERROR cannot assign to `*n`, which is behind a `&` reference
|
2017-10-06 15:30:23 -05:00
|
|
|
let _ = n;
|
|
|
|
}
|
|
|
|
None => {},
|
|
|
|
};
|
|
|
|
|
|
|
|
match &&mut Some(5i32) {
|
|
|
|
Some(n) => {
|
2021-07-02 11:29:49 -05:00
|
|
|
*n += 1; //~ ERROR cannot assign to `*n`, which is behind a `&` reference
|
2017-10-06 15:30:23 -05:00
|
|
|
let _ = n;
|
|
|
|
}
|
|
|
|
None => {},
|
|
|
|
};
|
|
|
|
}
|