Error code E0227
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:
#![allow(unused)] fn main() { 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:
#![allow(unused)] fn main() { 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, } }