public protocol P {} public struct S: P {} public func makePair() -> (some P, some P) { (S(), S()) }
// makePair() sil hidden @$s1i8makePairQr_QrtyF : $@convention(thin) @substituted <τ_0_0, τ_0_1> () -> (@out τ_0_0, @out τ_0_1) for <@_opaqueReturnTypeOf("$s1i8makePairQr_QrtyF", 0) __, @_opaqueReturnTypeOf("$s1i8makePairQr_QrtyF", 0) __> {
$ swift demangle '$s1i8makePairQr_QrtyF' $s1i8makePairQr_QrtyF ---> i.makePair() -> (some, some)
// .swiftinterface public func makePair() -> (some i.P, some i.P)
some
が2つ返り値にあるから、これに0番、1番って番号が付いていて、swift_getTypeByMangledNameInContext
で問い合わせる