Avatar
@swift-main protocol P { func foo() -> Int } struct S: P { func foo() -> Int { 42 } } func useP<T: P>(_ p: T) -> T? { p } let p: any P = S() let q: (any P)? = useP(p) print(q?.foo() as Any) (edited)