mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
We want SILGen to have a simplified view of its executor and know that whenever one sees an Actor, it is an actual actor instead of a Builtin.Executor. This just simplifies code. Also, we should eventually have an invariant that Builtin.Executor should only be allowed in LoweredSIL after LowerHopToExecutor has run. But that is a change for another day.
30 lines
1003 B
Swift
30 lines
1003 B
Swift
// RUN: %target-swift-frontend -emit-irgen %s -enable-experimental-feature Embedded -enable-builtin-module | %FileCheck %s
|
|
|
|
// REQUIRES: swift_in_compiler
|
|
// REQUIRES: optimized_stdlib
|
|
// REQUIRES: OS=macosx || OS=wasip1
|
|
// REQUIRES: swift_feature_Embedded
|
|
|
|
import Builtin
|
|
import _Concurrency
|
|
|
|
public func test() async {
|
|
_ = Builtin.createAsyncTask(0) { () async throws -> Int in
|
|
return 42
|
|
}
|
|
}
|
|
|
|
// CHECK: define {{.*}}@"$e4main4testyyYaF"(ptr swiftasync %0)
|
|
// CHECK: entry:
|
|
// CHECK: %result_type_info_record = alloca %swift.result_type_info_task_option
|
|
// CHECK: call {{.*}}@llvm.coro.id.async
|
|
// CHECK: call {{.*}}@llvm.coro.begin
|
|
// CHECK: call {{.*}}@llvm.coro.async.resume
|
|
// CHECK: call {{.*}}@llvm.coro.suspend.async.sl_p0s
|
|
// CHECK: call {{.*}}@__swift_async_resume_get_context
|
|
// CHECK: call {{.*}}%swift.async_task_and_context @swift_task_create
|
|
// CHECK: call {{.*}}@swift_release
|
|
// CHECK: call {{.*}}@llvm.coro.end.async
|
|
// CHECK: unreachable
|
|
// CHECK: }
|