trait X { | |
fn get_i(&self) -> isize; | |
} | |
struct B { | |
i: isize | |
} | |
impl X for B { | |
fn get_i(&self) -> isize { | |
self.i | |
} | |
} | |
struct A<'a> { | |
p: &'a (dyn X + 'a) | |
} | |
fn make_a<'a>(p: &'a dyn X) -> A<'a> { | |
A { p: p } | |
} | |
fn make_make_a<'a>() -> A<'a> { | |
let b: Box<B> = Box::new(B { i: 1 }); | |
let bb: &B = &*b; | |
make_a(bb) //~ ERROR cannot return value referencing local data `*b` | |
} | |
fn main() { | |
let _a = make_make_a(); | |
} |