]> git.lizzy.rs Git - rust.git/blob - tests/ui/borrowck/issue-81365-3.rs
Rollup merge of #106644 - alexcrichton:update-wasi-toolchain, r=cuviper
[rust.git] / tests / ui / borrowck / issue-81365-3.rs
1 use std::ops::Deref;
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 struct Outer {
19     container: Container,
20 }
21
22 impl Deref for Outer {
23     type Target = Container;
24     fn deref(&self) -> &Self::Target {
25         &self.container
26     }
27 }
28
29 impl Outer {
30     fn bad_borrow(&mut self) {
31         let first = &self.target_field;
32         self.container.container_field = true; //~ ERROR E0506
33         first;
34     }
35 }
36
37 fn main() {}