| // 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>(T); | |
| trait Trait { | |
| type AT; | |
| } | |
| impl<T> Trait for Generic<T> { | |
| type AT = T; // only fails with a generic AT | |
| } |