summary refs log tree commit diff
path: root/src/test/ui/lifetime-errors/ex2c-push-inference-variable.stderr
blob: 7356fc11862f6e104d004cd642852161b18e5e1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'a` due to conflicting requirements
  --> $DIR/ex2c-push-inference-variable.rs:16:13
   |
16 |     let z = Ref { data: y.data };
   |             ^^^
   |
note: first, the lifetime cannot outlive the lifetime 'c as defined on the function body at 15:1...
  --> $DIR/ex2c-push-inference-variable.rs:15:1
   |
15 | / fn foo<'a, 'b, 'c>(x: &'a mut Vec<Ref<'b, i32>>, y: Ref<'c, i32>) {
16 | |     let z = Ref { data: y.data };
17 | |     x.push(z);
18 | | }
   | |_^
note: ...so that reference does not outlive borrowed content
  --> $DIR/ex2c-push-inference-variable.rs:16:25
   |
16 |     let z = Ref { data: y.data };
   |                         ^^^^^^
note: but, the lifetime must be valid for the lifetime 'b as defined on the function body at 15:1...
  --> $DIR/ex2c-push-inference-variable.rs:15:1
   |
15 | / fn foo<'a, 'b, 'c>(x: &'a mut Vec<Ref<'b, i32>>, y: Ref<'c, i32>) {
16 | |     let z = Ref { data: y.data };
17 | |     x.push(z);
18 | | }
   | |_^
note: ...so that expression is assignable (expected Ref<'b, _>, found Ref<'_, _>)
  --> $DIR/ex2c-push-inference-variable.rs:17:12
   |
17 |     x.push(z);
   |            ^

error: aborting due to previous error