warning[E0713]: borrow may still be in use when destructor runs --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:63:5 | LL | &mut *s.0 //[nll]~ ERROR borrow may still be in use when destructor runs [E0713] | ^^^^^^^^^ ... LL | } | - here, drop of `s` needs exclusive access to `*s.0`, because the type `Scribble<'_>` implements the `Drop` trait | note: borrowed value must be valid for the lifetime 'a as defined on the function body at 62:14... --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:62:14 | LL | fn scribbled<'a>(s: Scribble<'a>) -> &'a mut u32 { | ^^ = warning: This error has been downgraded to a warning for backwards compatibility with previous releases. It represents potential unsoundness in your code. This warning will become a hard error in the future. warning[E0713]: borrow may still be in use when destructor runs --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:73:5 | LL | &mut *(*s).0 //[nll]~ ERROR borrow may still be in use when destructor runs [E0713] | ^^^^^^^^^^^^ ... LL | } | - here, drop of `s` needs exclusive access to `*s.0`, because the type `Scribble<'_>` implements the `Drop` trait | note: borrowed value must be valid for the lifetime 'a as defined on the function body at 72:20... --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:72:20 | LL | fn boxed_scribbled<'a>(s: Box>) -> &'a mut u32 { | ^^ = warning: This error has been downgraded to a warning for backwards compatibility with previous releases. It represents potential unsoundness in your code. This warning will become a hard error in the future. warning[E0713]: borrow may still be in use when destructor runs --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:83:5 | LL | &mut *(**s).0 //[nll]~ ERROR borrow may still be in use when destructor runs [E0713] | ^^^^^^^^^^^^^ ... LL | } | - here, drop of `s` needs exclusive access to `*s.0`, because the type `Scribble<'_>` implements the `Drop` trait | note: borrowed value must be valid for the lifetime 'a as defined on the function body at 82:26... --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:82:26 | LL | fn boxed_boxed_scribbled<'a>(s: Box>>) -> &'a mut u32 { | ^^ = warning: This error has been downgraded to a warning for backwards compatibility with previous releases. It represents potential unsoundness in your code. This warning will become a hard error in the future. error: compilation successful --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:89:1 | LL | / fn main() { //[ast]~ ERROR compilation successful LL | | //[migrate]~^ ERROR compilation successful LL | | let mut x = 1; LL | | { ... | LL | | *boxed_boxed_scribbled(Box::new(Box::new(Scribble(&mut x)))) += 10; LL | | } | |_^ error: aborting due to previous error For more information about this error, try `rustc --explain E0713`.