]> git.lizzy.rs Git - rust.git/blob - tests/ui/regions/issue-12470.rs
internally change regions to be covariant
[rust.git] / tests / ui / regions / issue-12470.rs
1 trait X {
2     fn get_i(&self) -> isize;
3 }
4
5
6
7
8 struct B {
9     i: isize
10 }
11
12 impl X for B {
13     fn get_i(&self) -> isize {
14         self.i
15     }
16 }
17
18 struct A<'a> {
19     p: &'a (dyn X + 'a)
20 }
21
22 fn make_a<'a>(p: &'a dyn X) -> A<'a> {
23     A { p: p }
24 }
25
26 fn make_make_a<'a>() -> A<'a> {
27     let b: Box<B> = Box::new(B { i: 1 });
28     let bb: &B = &*b;
29     make_a(bb)  //~ ERROR cannot return value referencing local data `*b`
30 }
31
32 fn main() {
33     let _a = make_make_a();
34 }