// Regression test for #52057. There is an implied bound // that `I: 'x` where `'x` is the lifetime of the reference `&mut Self::Input` // in `parse_first`; but to observe that, one must normalize first. // // run-pass pub trait Parser { type Input; fn parse_first(input: &mut Self::Input); } impl<'a, I, P: ?Sized> Parser for &'a mut P where P: Parser, { type Input = I; fn parse_first(_: &mut Self::Input) {} } fn main() {}