blob: 6de92f13840b3310b3a931a63a05e6702736315f [file] [log] [blame]
error[E0478]: lifetime bound not satisfied
--> $DIR/regions-trait-object-subtyping.rs:15:5
|
LL | x
| ^
|
note: lifetime parameter instantiated with the lifetime 'a as defined on the function body at 13:9
--> $DIR/regions-trait-object-subtyping.rs:13:9
|
LL | fn foo3<'a,'b>(x: &'a mut dyn Dummy) -> &'b mut dyn Dummy {
| ^^
note: but lifetime parameter must outlive the lifetime 'b as defined on the function body at 13:12
--> $DIR/regions-trait-object-subtyping.rs:13:12
|
LL | fn foo3<'a,'b>(x: &'a mut dyn Dummy) -> &'b mut dyn Dummy {
| ^^
error[E0495]: cannot infer an appropriate lifetime for automatic coercion due to conflicting requirements
--> $DIR/regions-trait-object-subtyping.rs:15:5
|
LL | x
| ^
|
note: first, the lifetime cannot outlive the lifetime 'a as defined on the function body at 13:9...
--> $DIR/regions-trait-object-subtyping.rs:13:9
|
LL | fn foo3<'a,'b>(x: &'a mut dyn Dummy) -> &'b mut dyn Dummy {
| ^^
note: ...so that reference does not outlive borrowed content
--> $DIR/regions-trait-object-subtyping.rs:15:5
|
LL | x
| ^
note: but, the lifetime must be valid for the lifetime 'b as defined on the function body at 13:12...
--> $DIR/regions-trait-object-subtyping.rs:13:12
|
LL | fn foo3<'a,'b>(x: &'a mut dyn Dummy) -> &'b mut dyn Dummy {
| ^^
= note: ...so that the expression is assignable:
expected &'b mut (dyn Dummy + 'b)
found &mut (dyn Dummy + 'b)
error[E0308]: mismatched types
--> $DIR/regions-trait-object-subtyping.rs:22:5
|
LL | x
| ^ lifetime mismatch
|
= note: expected type `Wrapper<&'b mut (dyn Dummy + 'b)>`
found type `Wrapper<&'a mut (dyn Dummy + 'a)>`
note: the lifetime 'b as defined on the function body at 20:15...
--> $DIR/regions-trait-object-subtyping.rs:20:15
|
LL | fn foo4<'a:'b,'b>(x: Wrapper<&'a mut dyn Dummy>) -> Wrapper<&'b mut dyn Dummy> {
| ^^
note: ...does not necessarily outlive the lifetime 'a as defined on the function body at 20:9
--> $DIR/regions-trait-object-subtyping.rs:20:9
|
LL | fn foo4<'a:'b,'b>(x: Wrapper<&'a mut dyn Dummy>) -> Wrapper<&'b mut dyn Dummy> {
| ^^
error: aborting due to 3 previous errors
Some errors have detailed explanations: E0308, E0478.
For more information about an error, try `rustc --explain E0308`.