]> git.lizzy.rs Git - rust.git/blob - tests/ui/borrowck/issue-81365-4.rs
Rollup merge of #106798 - scottmcm:signum-via-cmp, r=Mark-Simulacrum
[rust.git] / tests / ui / borrowck / issue-81365-4.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     outer_field: bool,
21 }
22
23 impl Deref for Outer {
24     type Target = Container;
25     fn deref(&self) -> &Self::Target {
26         &self.container
27     }
28 }
29
30 impl Outer {
31     fn bad_borrow(&mut self) {
32         let first = &self.target_field;
33         self.outer_field = true; //~ ERROR E0506
34         first;
35     }
36 }
37
38 fn main() {}