import Foundation @objc protocol P {} func takeGeneric<T: P>(_ t: T) {} func main() { let pMeta = P.self // Argument type 'P.Protocol' does not conform to expected type 'P' takeGeneric(pMeta) }