// Regression test for an NLL-related ICE (#52992) -- computing // implied bounds was causing outlives relations that were not // properly handled. // //@ check-pass fn main() {} fn fail<'a>() -> Struct<'a, Generic<()>> { Struct(&Generic(())) } struct Struct<'a, T>(&'a T) where T: Trait + 'a, T::AT: 'a; // only fails with this bound struct Generic(T); trait Trait { type AT; } impl Trait for Generic { type AT = T; // only fails with a generic AT }