Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Error code E0478

A lifetime bound was not satisfied.

Erroneous code example:

#![allow(unused)] fn main() { // Check that the explicit lifetime bound (`'SnowWhite`, in this example) must // outlive all the superbounds from the trait (`'kiss`, in this example). trait Wedding<'t>: 't { } struct Prince<'kiss, 'SnowWhite> { child: Box<Wedding<'kiss> + 'SnowWhite>, // error: lifetime bound not satisfied } }

In this example, the 'SnowWhite lifetime is supposed to outlive the 'kiss lifetime but the declaration of the Prince struct doesn't enforce it. To fix this issue, you need to specify it:

#![allow(unused)] fn main() { trait Wedding<'t>: 't { } struct Prince<'kiss, 'SnowWhite: 'kiss> { // You say here that 'SnowWhite // must live longer than 'kiss. child: Box<Wedding<'kiss> + 'SnowWhite>, // And now it's all good! } }