use std::rc::Rc; | |
use std::sync::Arc; | |
struct Foo<'a>(&'a String); | |
impl<'a> Drop for Foo<'a> { | |
fn drop(&mut self) { | |
println!("{:?}", self.0); | |
} | |
} | |
fn main() { | |
{ | |
let (y, x); | |
x = "alive".to_string(); | |
y = Arc::new(Foo(&x)); | |
} | |
//~^^ ERROR `x` does not live long enough | |
{ | |
let (y, x); | |
x = "alive".to_string(); | |
y = Rc::new(Foo(&x)); | |
} | |
//~^^ ERROR `x` does not live long enough | |
} |