// RUN: %target-build-swift -emit-module -o %t %s public protocol P1 {} public protocol P2 {} public protocol P3 { static func a() func b() func b(_: (I) -> Void) static func c(_: I) static func d() static func d(_: ([(I, I)]) -> Void) static func d(_: ([I: I]) -> Void) static func d(_: Q) static func e(_: Q, _: (I) -> Void) static func f(_: Q, _: (I) -> Void) func g(_: I) } public extension P3 { static func a() {} func b() {} func b(_: (I) -> Void) {} static func c(_: I) {} static func d() {} static func d(_: ([(I, I)]) -> Void) {} static func d(_: ([I: I]) -> Void) {} static func d(_: Q) {} static func e(_: Q, _: (I) -> Void) {} static func f(_: Q, _: (I) -> Void) {} func g(_: I) {} } struct S: P3 { }