error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'a` due to conflicting requirements --> $DIR/issue-20831-debruijn.rs:38:5 | LL | / fn subscribe(&mut self, t : Box::Output> + 'a>) { LL | | // Not obvious, but there is an implicit lifetime here -------^ LL | | //~^^ ERROR cannot infer LL | | // ... | LL | | self.sub = t; LL | | } | |_____^ | note: first, the lifetime cannot outlive the anonymous lifetime #2 defined on the method body at 38:5... --> $DIR/issue-20831-debruijn.rs:38:5 | LL | / fn subscribe(&mut self, t : Box::Output> + 'a>) { LL | | // Not obvious, but there is an implicit lifetime here -------^ LL | | //~^^ ERROR cannot infer LL | | // ... | LL | | self.sub = t; LL | | } | |_____^ note: ...but the lifetime must also be valid for the lifetime 'a as defined on the impl at 36:6... --> $DIR/issue-20831-debruijn.rs:36:6 | LL | impl<'a> Publisher<'a> for MyStruct<'a> { | ^^ = note: ...so that the types are compatible: expected Publisher<'_> found Publisher<'_> error: aborting due to previous error For more information about this error, try `rustc --explain E0495`.