Files
swift-mirror/test/embedded/concurrency-builtins.swift
Michael Gottesman 81885a67d0 [silgen] Change two places we used Builtin.Executor to instead use Optional<any Actor> as an expected executor.
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.
2025-10-16 10:51:13 -07:00

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: }