| warning[E0713]: borrow may still be in use when destructor runs |
| --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:52:5 |
| | |
| LL | fn scribbled<'a>(s: Scribble<'a>) -> &'a mut u32 { |
| | -- lifetime `'a` defined here |
| LL | &mut *s.0 |
| | ^^^^^^^^^ returning this value requires that `*s.0` is borrowed for `'a` |
| ... |
| LL | } |
| | - here, drop of `s` needs exclusive access to `*s.0`, because the type `Scribble<'_>` implements the `Drop` trait |
| | |
| = warning: this error has been downgraded to a warning for backwards compatibility with previous releases |
| = warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future |
| = note: for more information, try `rustc --explain E0729` |
| |
| warning[E0713]: borrow may still be in use when destructor runs |
| --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:63:5 |
| | |
| LL | fn boxed_scribbled<'a>(s: Box<Scribble<'a>>) -> &'a mut u32 { |
| | -- lifetime `'a` defined here |
| LL | &mut *(*s).0 |
| | ^^^^^^^^^^^^ returning this value requires that `*s.0` is borrowed for `'a` |
| ... |
| LL | } |
| | - here, drop of `s` needs exclusive access to `*s.0`, because the type `Scribble<'_>` implements the `Drop` trait |
| | |
| = warning: this error has been downgraded to a warning for backwards compatibility with previous releases |
| = warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future |
| = note: for more information, try `rustc --explain E0729` |
| |
| warning[E0713]: borrow may still be in use when destructor runs |
| --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:74:5 |
| | |
| LL | fn boxed_boxed_scribbled<'a>(s: Box<Box<Scribble<'a>>>) -> &'a mut u32 { |
| | -- lifetime `'a` defined here |
| LL | &mut *(**s).0 |
| | ^^^^^^^^^^^^^ returning this value requires that `*s.0` is borrowed for `'a` |
| ... |
| LL | } |
| | - here, drop of `s` needs exclusive access to `*s.0`, because the type `Scribble<'_>` implements the `Drop` trait |
| | |
| = warning: this error has been downgraded to a warning for backwards compatibility with previous releases |
| = warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future |
| = note: for more information, try `rustc --explain E0729` |
| |
| error: compilation successful |
| --> $DIR/issue-45696-scribble-on-boxed-borrow.rs:81:1 |
| | |
| LL | / fn main() { |
| LL | | let mut x = 1; |
| LL | | { |
| LL | | let mut long_lived = Scribble(&mut x); |
| ... | |
| 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`. |