]> git.lizzy.rs Git - rust.git/blob - tests/ui/borrowck/issue-81365-11.rs
Auto merge of #106646 - Amanieu:ilp32-object, r=Mark-Simulacrum
[rust.git] / tests / ui / borrowck / issue-81365-11.rs
1 use std::ops::{Deref, DerefMut};
2
3 struct DerefTarget {
4     target_field: bool,
5 }
6 struct Container {
7     target: DerefTarget,
8     container_field: bool,
9 }
10
11 impl Deref for Container {
12     type Target = DerefTarget;
13     fn deref(&self) -> &Self::Target {
14         &self.target
15     }
16 }
17
18 impl DerefMut for Container {
19     fn deref_mut(&mut self) -> &mut Self::Target {
20         &mut self.target
21     }
22 }
23
24 impl Container {
25     fn bad_borrow(&mut self) {
26         let first = &mut self.target_field;
27         self.container_field = true; //~ ERROR E0506
28         first;
29     }
30 }
31
32 fn main() {}