// RUN: %target-swift-frontend -emit-ir %s -target %target-swift-5.9-abi-triple | %FileCheck %s public protocol P {} public struct G: P {} public func concreteG(_ t: repeat each T) -> some P { return G() } public func abstractG(_ t: T) -> some P { return G() } public func variadicG(_ t: repeat each T) -> some P { return G() } // Opaque return type is witnessed by a conditional conformance protocol Q {} struct S1: Q {} struct S2: Q {} struct G2 {} extension G2: P where repeat each T: Q {} func concreteG2() -> some P { G2() } func abstractG2(_: T) -> some P { G2() } func variadicG2(_: repeat each T) -> some P { G2() } // CHECK: define private ptr @"get_witness_table 23variadic_generic_opaque2G2VyAA2S1V_AA2S2VQPGAA1PHPAeA1QHPyHC_AgaJHPyHCHX_HC" // CHECK: define private ptr @"get_witness_table 23variadic_generic_opaque1QRzlAA2G2VyAA2S1V_xQPGAA1PHPAfaBHPyHC_xAaBHD1_HX_HC" // CHECK: define private ptr @"get_witness_table Rvz23variadic_generic_opaque1QRzlAA2G2VyxxQp_QPGAA1PHPxAaBHD1__HX_HC" // Conditional same-shape requirement public struct Outer { public struct Inner {} } extension Outer.Inner: P where (repeat (each T, each U)): Any {} func concreteOuterInner() -> some P { Outer.Inner() }