E0227 - Error codes index
Description: Book listing all Rust error codes

# 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,
    }
    }