error[E0308]: mismatched types --> $DIR/regions-infer-paramd-indirect.rs:26:18 | LL | self.f = b; | ^ lifetime mismatch | = note: expected struct `Box>` found struct `Box>` note: the anonymous lifetime defined here... --> $DIR/regions-infer-paramd-indirect.rs:25:36 | LL | fn set_f_bad(&mut self, b: Box) { | ^ note: ...does not necessarily outlive the lifetime `'a` as defined here --> $DIR/regions-infer-paramd-indirect.rs:20:6 | LL | impl<'a> SetF<'a> for C<'a> { | ^^ error: aborting due to previous error For more information about this error, try `rustc --explain E0308`.