// RUN: %target-swift-frontend -emit-ir -g -o - -module-name test -strict-concurrency=complete -swift-version 5 -enable-upcoming-feature SendingArgsAndResults -target %target-swift-5.1-abi-triple %s | %FileCheck %s // REQUIRES: swift_feature_SendingArgsAndResults // Test that we can properly reconstruct sending from various tests when // emitting debug info. Only place examples in here that have already failed. public struct SendableStruct: Sendable { } // This verifies that we can properly type reconstruct: // // $ss6ResultOy4test14SendableStructVs5Error_pGIeggT_D // // Which is: // // @escaping @callee_guaranteed (@guaranteed sending Swift.Result) -> () // // CHECK: !{{[0-9]+}} = !DICompositeType(tag: DW_TAG_structure_type, name: "$ss6ResultOy4test14SendableStructVs5Error_pGIeggT_D", func testReconstructingEscapingClosureWithSendingParam() async throws -> SendableStruct { func callSendableFunction(_ x: @Sendable () -> ()) {} func helper(_ completion: @escaping (__shared sending Result) -> Void) { fatalError() } return try await withCheckedThrowingContinuation { continuation in callSendableFunction { helper(continuation.resume(with:)) } } }