// ICE regression relating to unconstrained lifetimes in implied // bounds. See #110161. // compile-flags: --crate-type=lib trait LtTrait { type Ty; } // erroneous `Ty` impl impl LtTrait for () { //~^ ERROR not all trait items implemented, missing: `Ty` [E0046] } // `'lt` is not constrained by the erroneous `Ty` impl<'lt, T> LtTrait for Box<T> where T: LtTrait<Ty = &'lt ()>, { type Ty = &'lt (); } // unconstrained lifetime appears in implied bounds fn test(_: <Box<()> as LtTrait>::Ty) {} fn test2<'x>(_: &'x <Box<()> as LtTrait>::Ty) {}