1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
// RUN: %empty-directory(%t)
// RUN: %target-clang %S/Inputs/rdar81617749.m -I %S/Inputs -c -o %t/rdar81617749.o
// RUN: %target-build-swift -Xfrontend -disable-availability-checking -import-objc-header %S/Inputs/rdar81617749.h -Xlinker %t/rdar81617749.o -parse-as-library %s -o %t/main
// RUN: %target-codesign %t/main
// RUN: %target-run %t/main | %FileCheck %s
// REQUIRES: executable_test
// REQUIRES: objc_interop
// rdar://82123254
// UNSUPPORTED: use_os_stdlib
// UNSUPPORTED: back_deployment_runtime
func run(on object: PFXObject) async throws {
// CHECK: performSingleFlaggy1
print(try await object.performSingleFlaggy1()?())
// CHECK: performSingleFlaggy2
print(try await object.performSingleFlaggy2()?())
// CHECK: performSingleErrory1
print(try await object.performSingleErrory1()())
// CHECK: performSingleErrory2
print(try await object.performSingleErrory2()())
// CHECK: performSingleBothy12
print(try await object.performSingleBothy12()())
// CHECK: performSingleBothy13
print(try await object.performSingleBothy13()())
// CHECK: performSingleBothy21
print(try await object.performSingleBothy21()())
// CHECK: performSingleBothy23
print(try await object.performSingleBothy23()())
// CHECK: performSingleBothy31
print(try await object.performSingleBothy31()())
// CHECK: performSingleBothy32
print(try await object.performSingleBothy32()())
// CHECK: performDoubleFlaggy1, part 1
// CHECK: performDoubleFlaggy1, part 2
let rFlaggy1 = try await object.performDoubleFlaggy1()
rFlaggy1.0?()
rFlaggy1.1?()
// CHECK: performDoubleFlaggy2, part 1
// CHECK: performDoubleFlaggy2, part 2
let rFlaggy2 = try await object.performDoubleFlaggy2()
rFlaggy2.0?()
rFlaggy2.1?()
// CHECK: performDoubleFlaggy3, part 1
// CHECK: performDoubleFlaggy3, part 2
let rFlaggy3 = try await object.performDoubleFlaggy3()
rFlaggy3.0?()
rFlaggy3.1?()
// CHECK: performDoubleErrory1, part 1
// CHECK: performDoubleErrory1, part 2
let rErrory1 = try await object.performDoubleErrory1()
rErrory1.0()
rErrory1.1()
// CHECK: performDoubleErrory2, part 1
// CHECK: performDoubleErrory2, part 2
let rErrory2 = try await object.performDoubleErrory2()
rErrory2.0()
rErrory2.1()
// CHECK: performDoubleErrory3, part 1
// CHECK: performDoubleErrory3, part 2
let rErrory3 = try await object.performDoubleErrory3()
rErrory3.0()
rErrory3.1()
// CHECK: performDoubleBothy12, part 1
// CHECK: performDoubleBothy12, part 2
let rBothy12 = try await object.performDoubleBothy12()
rBothy12.0()
rBothy12.1()
// CHECK: performDoubleBothy13, part 1
// CHECK: performDoubleBothy13, part 2
let rBothy13 = try await object.performDoubleBothy13()
rBothy13.0()
rBothy13.1()
// CHECK: performDoubleBothy14, part 1
// CHECK: performDoubleBothy14, part 2
let rBothy14 = try await object.performDoubleBothy14()
rBothy14.0()
rBothy14.1()
// CHECK: performDoubleBothy21, part 1
// CHECK: performDoubleBothy21, part 2
let rBothy21 = try await object.performDoubleBothy21()
rBothy21.0()
rBothy21.1()
// CHECK: performDoubleBothy23, part 1
// CHECK: performDoubleBothy23, part 2
let rBothy23 = try await object.performDoubleBothy23()
rBothy23.0()
rBothy23.1()
// CHECK: performDoubleBothy24, part 1
// CHECK: performDoubleBothy24, part 2
let rBothy24 = try await object.performDoubleBothy24()
rBothy24.0()
rBothy24.1()
// CHECK: performDoubleBothy31, part 1
// CHECK: performDoubleBothy31, part 2
let rBothy31 = try await object.performDoubleBothy31()
rBothy31.0()
rBothy31.1()
// CHECK: performDoubleBothy32, part 1
// CHECK: performDoubleBothy32, part 2
let rBothy32 = try await object.performDoubleBothy32()
rBothy32.0()
rBothy32.1()
// CHECK: performDoubleBothy34, part 1
// CHECK: performDoubleBothy34, part 2
let rBothy34 = try await object.performDoubleBothy34()
rBothy34.0()
rBothy34.1()
// CHECK: performDoubleBothy41, part 1
// CHECK: performDoubleBothy41, part 2
let rBothy41 = try await object.performDoubleBothy41()
rBothy41.0()
rBothy41.1()
// CHECK: performDoubleBothy42, part 1
// CHECK: performDoubleBothy42, part 2
let rBothy42 = try await object.performDoubleBothy42()
rBothy42.0()
rBothy42.1()
// CHECK: performDoubleBothy43, part 1
// CHECK: performDoubleBothy43, part 2
let rBothy43 = try await object.performDoubleBothy43()
rBothy43.0()
rBothy43.1()
}
@main struct Main {
static func main() async throws {
let object = PFXObject()
try await run(on: object)
}
}
|