// RUN: %target-typecheck-verify-swift protocol P { associatedtype T : Q } protocol Q { associatedtype T : R var t: T { get } } protocol R {} func takesR(_: T) {} class C : P {} struct Outer { struct Inner where T : C { func doStuff(_ u: U) { takesR(u.t) } } }