| This error indicates that the compiler is unable to determine whether there is |
| exactly one unique region in the set of derived region bounds. |
| |
| Example of erroneous code: |
| |
| ```compile_fail,E0227 |
| trait Foo<'foo>: 'foo {} |
| trait Bar<'bar>: 'bar {} |
| |
| trait FooBar<'foo, 'bar>: Foo<'foo> + Bar<'bar> {} |
| |
| struct Baz<'foo, 'bar> { |
| baz: dyn FooBar<'foo, 'bar>, |
| } |
| ``` |
| |
| Here, `baz` can have either `'foo` or `'bar` lifetimes. |
| |
| To resolve this error, provide an explicit lifetime: |
| |
| ```rust |
| trait Foo<'foo>: 'foo {} |
| trait Bar<'bar>: 'bar {} |
| |
| trait FooBar<'foo, 'bar>: Foo<'foo> + Bar<'bar> {} |
| |
| struct Baz<'foo, 'bar, 'baz> |
| where |
| 'baz: 'foo + 'bar, |
| { |
| obj: dyn FooBar<'foo, 'bar> + 'baz, |
| } |
| ``` |