1 warning[E0713]: borrow may still be in use when destructor runs
2 --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:63:5
4 LL | fn scribbled<'a>(s: Scribble<'a>) -> &'a mut u32 {
5 | -- lifetime `'a` defined here
6 LL | &mut *s.0 //[nll]~ ERROR borrow may still be in use when destructor runs [E0713]
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 It represents potential unsoundness in your code.
14 This warning will become a hard error in the future.
16 warning[E0713]: borrow may still be in use when destructor runs
17 --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:73:5
19 LL | fn boxed_scribbled<'a>(s: Box<Scribble<'a>>) -> &'a mut u32 {
20 | -- lifetime `'a` defined here
21 LL | &mut *(*s).0 //[nll]~ ERROR borrow may still be in use when destructor runs [E0713]
22 | ^^^^^^^^^^^^ returning this value requires that `*s.0` is borrowed for `'a`
25 | - here, drop of `s` needs exclusive access to `*s.0`, because the type `Scribble<'_>` implements the `Drop` trait
27 = warning: This error has been downgraded to a warning for backwards compatibility with previous releases.
28 It represents potential unsoundness in your code.
29 This warning will become a hard error in the future.
31 warning[E0713]: borrow may still be in use when destructor runs
32 --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:83:5
34 LL | fn boxed_boxed_scribbled<'a>(s: Box<Box<Scribble<'a>>>) -> &'a mut u32 {
35 | -- lifetime `'a` defined here
36 LL | &mut *(**s).0 //[nll]~ ERROR borrow may still be in use when destructor runs [E0713]
37 | ^^^^^^^^^^^^^ returning this value requires that `*s.0` is borrowed for `'a`
40 | - here, drop of `s` needs exclusive access to `*s.0`, because the type `Scribble<'_>` implements the `Drop` trait
42 = warning: This error has been downgraded to a warning for backwards compatibility with previous releases.
43 It represents potential unsoundness in your code.
44 This warning will become a hard error in the future.
46 error: compilation successful
47 --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:89:1
49 LL | / fn main() { //[ast]~ ERROR compilation successful
50 LL | | //[migrate]~^ ERROR compilation successful
54 LL | | *boxed_boxed_scribbled(Box::new(Box::new(Scribble(&mut x)))) += 10;
58 error: aborting due to previous error
60 For more information about this error, try `rustc --explain E0713`.