1 warning[E0713]: borrow may still be in use when destructor runs
2 --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:51:5
4 LL | fn scribbled<'a>(s: Scribble<'a>) -> &'a mut u32 {
5 | -- lifetime `'a` defined here
7 | ^^^^^^^^^ returning this value requires that `*s.0` is borrowed for `'a`
10 | - here, drop of `s` needs exclusive access to `*s.0`, because the type `Scribble<'_>` implements the `Drop` trait
12 = warning: this error has been downgraded to a warning for backwards compatibility with previous releases
13 = warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future
15 warning[E0713]: borrow may still be in use when destructor runs
16 --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:62:5
18 LL | fn boxed_scribbled<'a>(s: Box<Scribble<'a>>) -> &'a mut u32 {
19 | -- lifetime `'a` defined here
21 | ^^^^^^^^^^^^ returning this value requires that `*s.0` is borrowed for `'a`
24 | - here, drop of `s` needs exclusive access to `*s.0`, because the type `Scribble<'_>` implements the `Drop` trait
26 = warning: this error has been downgraded to a warning for backwards compatibility with previous releases
27 = warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future
29 warning[E0713]: borrow may still be in use when destructor runs
30 --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:73:5
32 LL | fn boxed_boxed_scribbled<'a>(s: Box<Box<Scribble<'a>>>) -> &'a mut u32 {
33 | -- lifetime `'a` defined here
35 | ^^^^^^^^^^^^^ returning this value requires that `*s.0` is borrowed for `'a`
38 | - here, drop of `s` needs exclusive access to `*s.0`, because the type `Scribble<'_>` implements the `Drop` trait
40 = warning: this error has been downgraded to a warning for backwards compatibility with previous releases
41 = warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future
43 error: compilation successful
44 --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:80:1
49 LL | | let mut long_lived = Scribble(&mut x);
51 LL | | *boxed_boxed_scribbled(Box::new(Box::new(Scribble(&mut x)))) += 10;
55 error: aborting due to previous error
57 For more information about this error, try `rustc --explain E0713`.