// RUN: %target-typecheck-verify-swift -disable-availability-checking protocol P { associatedtype T func foo() -> any P } struct A: P { typealias T = Int func foo() -> any P { self } } struct B: P { typealias T = Int func foo() -> any P { self } } struct G { let t: T } let p: any P = A() let g = G(t: p.foo()) let gg: G = g