| error[E0597]: `x` does not live long enough |
| --> $DIR/issue-29106.rs:16:26 |
| | |
| LL | let (y, x); |
| | - binding `x` declared here |
| LL | x = "alive".to_string(); |
| LL | y = Arc::new(Foo(&x)); |
| | ^^ borrowed value does not live long enough |
| LL | } |
| | - |
| | | |
| | `x` dropped here while still borrowed |
| | borrow might be used here, when `y` is dropped and runs the `Drop` code for type `Arc` |
| | |
| = note: values in a scope are dropped in the opposite order they are defined |
| |
| error[E0597]: `x` does not live long enough |
| --> $DIR/issue-29106.rs:23:25 |
| | |
| LL | let (y, x); |
| | - binding `x` declared here |
| LL | x = "alive".to_string(); |
| LL | y = Rc::new(Foo(&x)); |
| | ^^ borrowed value does not live long enough |
| LL | } |
| | - |
| | | |
| | `x` dropped here while still borrowed |
| | borrow might be used here, when `y` is dropped and runs the `Drop` code for type `Rc` |
| | |
| = note: values in a scope are dropped in the opposite order they are defined |
| |
| error: aborting due to 2 previous errors |
| |
| For more information about this error, try `rustc --explain E0597`. |