|
| 1 | +// RUN: %empty-directory(%t) |
| 2 | +// RUN: %target-swift-frontend -enable-experimental-feature Embedded -parse-as-library -module-name main %s -emit-ir | %FileCheck --check-prefix=CHECK-IR %s |
| 3 | +// RUN: %target-swift-frontend -enable-experimental-feature Embedded -parse-as-library -module-name main %s -c -o %t/a.o |
| 4 | +// RUN: %target-clang %t/a.o -o %t/a.out -L%swift_obj_root/lib/swift/embedded/%target-cpu-apple-macos -lswift_Concurrency -lswift_ConcurrencyDefaultExecutor -dead_strip |
| 5 | +// RUN: %target-run %t/a.out | %FileCheck %s |
| 6 | + |
| 7 | +// REQUIRES: executable_test |
| 8 | +// REQUIRES: swift_in_compiler |
| 9 | +// REQUIRES: optimized_stdlib |
| 10 | +// REQUIRES: OS=macosx |
| 11 | +// REQUIRES: swift_feature_Embedded |
| 12 | + |
| 13 | +import _Concurrency |
| 14 | + |
| 15 | +actor MyActor { |
| 16 | + var value: Int = 42 |
| 17 | + func foo() async { |
| 18 | + print("value: \(value)") |
| 19 | + } |
| 20 | + |
| 21 | + func thisIsUnused() async { |
| 22 | + print("unused") |
| 23 | + } |
| 24 | +} |
| 25 | + |
| 26 | +@main struct Main { |
| 27 | + static func main() async { |
| 28 | + let n = MyActor() |
| 29 | + await n.foo() |
| 30 | + } |
| 31 | +} |
| 32 | + |
| 33 | +// CHECK-IR: @swift_deletedAsyncMethodErrorTu = |
| 34 | +// CHECK-IR: @"$e4main7MyActorCN" = global <{ ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }> <{ |
| 35 | +// CHECK-IR-SAME: ptr null, |
| 36 | +// CHECK-IR-SAME: ptr @"$e4main7MyActorCfD", |
| 37 | +// CHECK-IR-SAME: ptr null, |
| 38 | +// CHECK-IR-SAME: ptr @swift_deletedMethodError, |
| 39 | +// CHECK-IR-SAME: ptr @swift_deletedMethodError, |
| 40 | +// CHECK-IR-SAME: ptr @swift_deletedMethodError, |
| 41 | +// CHECK-IR-SAME: ptr @"$e4main7MyActorC3fooyyYaFTu", |
| 42 | +// CHECK-IR-SAME: ptr @got.swift_deletedAsyncMethodErrorTu, |
| 43 | +// CHECK-IR-SAME: ptr @"$e4main7MyActorCACycfC" |
| 44 | +// CHECK-IR-SAME: }>, align 8 |
| 45 | + |
| 46 | +// CHECK-IR-NOT: $e4main7MyActorC12thisIsUnusedyyYaF |
| 47 | + |
| 48 | +// CHECK-IR: define swifttailcc void @swift_deletedAsyncMethodError(ptr swiftasync %0) |
| 49 | + |
| 50 | +// CHECK: value: 42 |
0 commit comments