// RUN: %target-typecheck-verify-swift -target %target-swift-5.9-abi-triple // These test cases exercise variants of rdar://problem/112785081 // and https://github.com/apple/swift/issues/68160. protocol P {} protocol Q { associatedtype A: Q var a: A { get } } struct S1: P { init(_: repeat each T) {} } func foo1a(_ t: repeat each T) -> some P { return S1(repeat each t) } func foo2a(_ t: repeat each T) -> S1 { return S1(repeat each t) } func foo3a(_ t: repeat each T) -> some P { return S1(repeat (each t).a) } func foo4a(_ t: repeat each T) -> S1 { return S1(repeat (each t).a) } func foo1b(_ t: repeat each T) -> some P { return S1.init(repeat each t) } func foo2b(_ t: repeat each T) -> S1 { return S1.init(repeat each t) } func foo3b(_ t: repeat each T) -> some P { return S1.init(repeat (each t).a) } func foo4b(_ t: repeat each T) -> S1 { return S1.init(repeat (each t).a) } struct S2: P { init(arg: (repeat each T)) {} } func bar1a(_ t: repeat each T) -> some P { return S2(arg: (repeat each t)) } func bar2a(_ t: repeat each T) -> S2 { return S2(arg: (repeat each t)) } func bar3a(_ t: repeat each T) -> some P { return S2(arg: (repeat (each t).a)) } func bar4a(_ t: repeat each T) -> S2 { return S2(arg: (repeat (each t).a)) } func bar1b(_ t: repeat each T) -> some P { return S2.init(arg: (repeat each t)) } func bar2b(_ t: repeat each T) -> S2 { return S2.init(arg: (repeat each t)) } func bar3b(_ t: repeat each T) -> some P { return S2.init(arg: (repeat (each t).a)) } func bar4b(_ t: repeat each T) -> S2 { return S2.init(arg: (repeat (each t).a)) }