// check-fail // known-bug: #88526 // This should pass, but requires more logic. trait A { type I<'a>; } pub struct TestA { f: F, } impl A for TestA { type I<'a> = &'a F; } struct TestB { q: Q, f: F, } impl<'q, Q, I, F> A for TestB where Q: A = &'q I>, F: Fn(I), { type I<'a> = (); } fn main() {}