2017-02-17 10:32:25 -05:00
|
|
|
error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'a` due to conflicting requirements
|
|
|
|
--> $DIR/ex2d-push-inference-variable-2.rs:17:13
|
|
|
|
|
|
|
|
|
17 | let b = Ref { data: y.data };
|
|
|
|
| ^^^
|
2017-02-17 10:33:06 -05:00
|
|
|
|
|
2017-05-07 19:57:51 +03:00
|
|
|
note: first, the lifetime cannot outlive the lifetime 'c as defined on the function body at 15:0...
|
|
|
|
--> $DIR/ex2d-push-inference-variable-2.rs:15:1
|
2017-02-17 10:33:06 -05:00
|
|
|
|
|
2017-05-07 19:57:51 +03:00
|
|
|
15 | / fn foo<'a, 'b, 'c>(x: &'a mut Vec<Ref<'b, i32>>, y: Ref<'c, i32>) {
|
2017-02-17 10:33:06 -05:00
|
|
|
16 | | let a: &mut Vec<Ref<i32>> = x;
|
|
|
|
17 | | let b = Ref { data: y.data };
|
|
|
|
18 | | a.push(b);
|
|
|
|
19 | | }
|
2017-04-14 16:38:10 -07:00
|
|
|
| |_^
|
2017-02-17 10:33:06 -05:00
|
|
|
note: ...so that reference does not outlive borrowed content
|
|
|
|
--> $DIR/ex2d-push-inference-variable-2.rs:17:25
|
|
|
|
|
|
|
|
|
17 | let b = Ref { data: y.data };
|
|
|
|
| ^^^^^^
|
2017-05-07 19:57:51 +03:00
|
|
|
note: but, the lifetime must be valid for the lifetime 'b as defined on the function body at 15:0...
|
|
|
|
--> $DIR/ex2d-push-inference-variable-2.rs:15:1
|
2017-02-17 10:33:06 -05:00
|
|
|
|
|
2017-05-07 19:57:51 +03:00
|
|
|
15 | / fn foo<'a, 'b, 'c>(x: &'a mut Vec<Ref<'b, i32>>, y: Ref<'c, i32>) {
|
2017-02-17 10:33:06 -05:00
|
|
|
16 | | let a: &mut Vec<Ref<i32>> = x;
|
|
|
|
17 | | let b = Ref { data: y.data };
|
|
|
|
18 | | a.push(b);
|
|
|
|
19 | | }
|
2017-04-14 16:38:10 -07:00
|
|
|
| |_^
|
2017-02-17 10:33:06 -05:00
|
|
|
note: ...so that expression is assignable (expected &mut std::vec::Vec<Ref<'_, i32>>, found &mut std::vec::Vec<Ref<'b, i32>>)
|
|
|
|
--> $DIR/ex2d-push-inference-variable-2.rs:16:33
|
|
|
|
|
|
|
|
|
16 | let a: &mut Vec<Ref<i32>> = x;
|
|
|
|
| ^
|
2017-02-17 10:32:25 -05:00
|
|
|
|
|
|
|
error: aborting due to previous error
|
|
|
|
|