// RUN: %target-swift-frontend -emit-ir %s -g -target %target-swift-5.9-abi-triple // Note: The goal of this test is to exercise the mangling/demangling via // the -g flag. public protocol P { associatedtype A associatedtype B } public protocol P1 { associatedtype A } public protocol Q { associatedtype C } public protocol R {} public class C {} public func foo(_ a: any P & R) {} public func foo(_ a: any P & Q) {} public func foo(_ a: any P & Q & R) {} public func foo(_ a: any P & Q & R & C) {} public func foo(_ a: any P & Q & R & AnyObject) {} public func foo(_ a: any (P & R).Type) {} public func foo(_ a: any (P & Q).Type) {} public func foo(_ a: any (P & Q & R).Type) {} public func foo(_ a: any (P & Q & R & C).Type) {} public func foo(_ a: any (P & Q & R & AnyObject).Type) {} public func foo(_ a: (any P & R).Type) {} public func foo(_ a: (any P & Q).Type) {} public func foo(_ a: (any P & Q & R).Type) {} public func foo(_ a: (any P & Q & R & C).Type) {} public func foo(_ a: (any P & Q & R & AnyObject).Type) {} public func foo(_ a: (any P & P1).Type) {} public func foo(_ a: (any P & P1).Type) {} public func foo(_ a: (any P & P1 & R).Type) {} public func foo(_ a: (any P & P1 & R & C).Type) {} public func foo(_ a: (any P & P1 & R & AnyObject).Type) {} public func foo(_ a: (any P & P1).Type) {} public func foo(_ a: (any P & P1 & R).Type) {} public func foo(_ a: (any P & P1 & R & C).Type) {} public func foo(_ a: (any P & P1 & R & AnyObject).Type) {} public protocol Q2: Q {} public protocol Q3: Q { associatedtype C } public func foo(_ a: (any Q2 & R).Type) {} public func foo(_ a: (any Q3 & R).Type) {} public func foo(_ a: (any Q2 & Q3).Type) {} public func foo(_ a: (any Q2 & Q3).Type) {} public func foo2(_ a: (any Q2 & Q3).Type) {} public func foo3(_ a: (any Q2 & Q3).Type) {} public struct Foo { public var a1: (repeat any P & R) }