Skip to content

Commit c8a8183

Browse files
ktosokubamracek
andauthored
[6.2][Concurrency][SE-review update] Task names update (#81132)
**Description**: This adds "task name" parameter to all task creating functions. This is done in a few ways, e.g. we can backdeploy this to 5.1 in APIs which do not accept the `TaskExecutor` but it they do we provide a version for 6.0+ etc. This was requested in the SE acceptable of this proposal [Acceptance post SE-0469](https://forums.swift.org/t/accepted-with-modifications-se-0469-task-naming/79438). This moves all these declarations to gyb since going through them one by one has become unmaintainable otherwise. **Scope/Impact**: All task creation APIs now gain a new task name parameter. **Risk:** Medium, changes existing APIs rather than adding "even more overloads" though this risk was discussed in the team and accepted. This has a potential to be source breaking it someone used Task.init and friends as function. **Testing**: CI testing, source compatibility suite testing **Reviewed by**: **Original PR:** - #81107 build changes required for this - #80984 **Radar:** --------- Co-authored-by: Kuba Mracek <[email protected]>
1 parent 2836060 commit c8a8183

File tree

15 files changed

+585
-1361
lines changed

15 files changed

+585
-1361
lines changed

Runtimes/Core/Concurrency/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
add_subdirectory(InternalShims)
22

3+
gyb_expand(Task+init.swift.gyb Task+init.swift)
34
gyb_expand(TaskGroup+addTask.swift.gyb TaskGroup+addTask.swift)
45
gyb_expand(Task+immediate.swift.gyb Task+immediate.swift)
56

@@ -92,10 +93,10 @@ add_library(swift_Concurrency
9293
Task+TaskExecutor.swift
9394
TaskCancellation.swift
9495
TaskGroup.swift
95-
TaskGroup+Embedded.swift
9696
TaskLocal.swift
9797
TaskSleep.swift
9898
TaskSleepDuration.swift
99+
"${CMAKE_CURRENT_BINARY_DIR}/Task+init.swift"
99100
"${CMAKE_CURRENT_BINARY_DIR}/TaskGroup+addTask.swift"
100101
"${CMAKE_CURRENT_BINARY_DIR}/Task+immediate.swift")
101102

cmake/modules/SwiftSetIfArchBitness.cmake

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ function(set_if_arch_bitness var_name)
2727
"${SIA_ARCH}" STREQUAL "powerpc")
2828
set("${var_name}" "${SIA_CASE_32_BIT}" PARENT_SCOPE)
2929
elseif("${SIA_ARCH}" STREQUAL "x86_64" OR
30-
"${SIA_ARCH}" STREQUAL "amd64" OR
31-
"${SIA_ARCH}" STREQUAL "arm64" OR
32-
"${SIA_ARCH}" STREQUAL "arm64e" OR
33-
"${SIA_ARCH}" STREQUAL "aarch64" OR
34-
"${SIA_ARCH}" STREQUAL "powerpc64" OR
35-
"${SIA_ARCH}" STREQUAL "powerpc64le" OR
36-
"${SIA_ARCH}" STREQUAL "s390x" OR
37-
"${SIA_ARCH}" STREQUAL "riscv64" OR
38-
"${SIA_ARCH}" STREQUAL "wasm64")
30+
"${SIA_ARCH}" STREQUAL "amd64" OR
31+
"${SIA_ARCH}" STREQUAL "arm64" OR
32+
"${SIA_ARCH}" STREQUAL "arm64e" OR
33+
"${SIA_ARCH}" STREQUAL "aarch64" OR
34+
"${SIA_ARCH}" STREQUAL "powerpc64" OR
35+
"${SIA_ARCH}" STREQUAL "powerpc64le" OR
36+
"${SIA_ARCH}" STREQUAL "s390x" OR
37+
"${SIA_ARCH}" STREQUAL "riscv64" OR
38+
"${SIA_ARCH}" STREQUAL "wasm64")
3939
set("${var_name}" "${SIA_CASE_64_BIT}" PARENT_SCOPE)
4040
else()
4141
message(FATAL_ERROR "Unknown architecture: ${SIA_ARCH}")

stdlib/cmake/modules/AddSwiftStdlib.cmake

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -822,6 +822,7 @@ function(add_swift_target_library_single target name)
822822
IS_FRAGILE)
823823
set(SWIFTLIB_SINGLE_single_parameter_options
824824
ARCHITECTURE
825+
ARCHITECTURE_SUBDIR_NAME
825826
DEPLOYMENT_VERSION_IOS
826827
DEPLOYMENT_VERSION_OSX
827828
DEPLOYMENT_VERSION_TVOS
@@ -888,6 +889,9 @@ function(add_swift_target_library_single target name)
888889
precondition(SWIFTLIB_SINGLE_SDK MESSAGE "Should specify an SDK")
889890
precondition(SWIFTLIB_SINGLE_ARCHITECTURE MESSAGE "Should specify an architecture")
890891
precondition(SWIFTLIB_SINGLE_INSTALL_IN_COMPONENT MESSAGE "INSTALL_IN_COMPONENT is required")
892+
if (NOT SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME)
893+
set(SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME "${SWIFTLIB_SINGLE_ARCHITECTURE}")
894+
endif()
891895

892896
if(NOT SWIFTLIB_SINGLE_SHARED AND
893897
NOT SWIFTLIB_SINGLE_STATIC AND
@@ -903,12 +907,12 @@ function(add_swift_target_library_single target name)
903907

904908
# Determine the subdirectory where this library will be installed.
905909
set(SWIFTLIB_SINGLE_SUBDIR
906-
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE}")
910+
"${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}")
907911

908912
# macCatalyst ios-like builds are installed in the maccatalyst/x86_64 directory
909913
if(maccatalyst_build_flavor STREQUAL "ios-like")
910914
set(SWIFTLIB_SINGLE_SUBDIR
911-
"${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE}")
915+
"${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}/${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}")
912916
endif()
913917

914918
if ("${SWIFTLIB_SINGLE_BOOTSTRAPPING}" STREQUAL "")
@@ -1033,6 +1037,7 @@ function(add_swift_target_library_single target name)
10331037
${SWIFTLIB_SINGLE_LINK_LIBRARIES}
10341038
SDK ${SWIFTLIB_SINGLE_SDK}
10351039
ARCHITECTURE ${SWIFTLIB_SINGLE_ARCHITECTURE}
1040+
ARCHITECTURE_SUBDIR_NAME ${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}
10361041
MODULE_NAME ${module_name}
10371042
MODULE_DIR ${SWIFTLIB_SINGLE_MODULE_DIR}
10381043
COMPILE_FLAGS ${SWIFTLIB_SINGLE_SWIFT_COMPILE_FLAGS}
@@ -1058,9 +1063,9 @@ function(add_swift_target_library_single target name)
10581063

10591064
# If there were any swift sources, then a .swiftmodule may have been created.
10601065
# If that is the case, then add a target which is an alias of the module files.
1061-
set(VARIANT_SUFFIX "-${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}-${SWIFTLIB_SINGLE_ARCHITECTURE}")
1066+
set(VARIANT_SUFFIX "-${SWIFT_SDK_${SWIFTLIB_SINGLE_SDK}_LIB_SUBDIR}-${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}")
10621067
if(maccatalyst_build_flavor STREQUAL "ios-like")
1063-
set(VARIANT_SUFFIX "-${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}-${SWIFTLIB_SINGLE_ARCHITECTURE}")
1068+
set(VARIANT_SUFFIX "-${SWIFT_SDK_MACCATALYST_LIB_SUBDIR}-${SWIFTLIB_SINGLE_ARCHITECTURE_SUBDIR_NAME}")
10641069
endif()
10651070

10661071
if(NOT "${SWIFTLIB_SINGLE_MODULE_TARGETS}" STREQUAL "" AND NOT "${swift_module_dependency_target}" STREQUAL "")

stdlib/cmake/modules/SwiftSource.cmake

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ function(handle_swift_sources
5050
sourcesvar externalvar name)
5151
cmake_parse_arguments(SWIFTSOURCES
5252
"IS_MAIN;IS_STDLIB;IS_STDLIB_CORE;IS_SDK_OVERLAY;EMBED_BITCODE;STATIC;NO_LINK_NAME;IS_FRAGILE;ONLY_SWIFTMODULE;NO_SWIFTMODULE"
53-
"SDK;ARCHITECTURE;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING;INSTALL_BINARY_SWIFTMODULE"
53+
"SDK;ARCHITECTURE;ARCHITECTURE_SUBDIR_NAME;INSTALL_IN_COMPONENT;DEPLOYMENT_VERSION_OSX;DEPLOYMENT_VERSION_IOS;DEPLOYMENT_VERSION_TVOS;DEPLOYMENT_VERSION_WATCHOS;MACCATALYST_BUILD_FLAVOR;BOOTSTRAPPING;INSTALL_BINARY_SWIFTMODULE"
5454
"DEPENDS;COMPILE_FLAGS;MODULE_NAME;MODULE_DIR;ENABLE_LTO"
5555
${ARGN})
5656
translate_flag(${SWIFTSOURCES_IS_MAIN} "IS_MAIN" IS_MAIN_arg)
@@ -83,6 +83,9 @@ function(handle_swift_sources
8383
precondition(SWIFTSOURCES_SDK "Should specify an SDK")
8484
precondition(SWIFTSOURCES_ARCHITECTURE "Should specify an architecture")
8585
precondition(SWIFTSOURCES_INSTALL_IN_COMPONENT "INSTALL_IN_COMPONENT is required")
86+
if (NOT SWIFTSOURCES_ARCHITECTURE_SUBDIR_NAME)
87+
set(SWIFTSOURCES_ARCHITECTURE_SUBDIR_NAME "${SWIFTSOURCES_ARCHITECTURE}")
88+
endif()
8689

8790
# Clear the result variable.
8891
set("${dependency_target_out_var_name}" "" PARENT_SCOPE)
@@ -108,12 +111,12 @@ function(handle_swift_sources
108111
endif()
109112

110113
if(swift_sources)
111-
set(objsubdir "/${SWIFTSOURCES_SDK}/${SWIFTSOURCES_ARCHITECTURE}")
114+
set(objsubdir "/${SWIFTSOURCES_SDK}/${SWIFTSOURCES_ARCHITECTURE_SUBDIR_NAME}")
112115

113116
get_maccatalyst_build_flavor(maccatalyst_build_flavor
114117
"${SWIFTSOURCES_SDK}" "${SWIFTSOURCES_MACCATALYST_BUILD_FLAVOR}")
115118
if(maccatalyst_build_flavor STREQUAL "ios-like")
116-
set(objsubdir "/MACCATALYST/${SWIFTSOURCES_ARCHITECTURE}")
119+
set(objsubdir "/MACCATALYST/${SWIFTSOURCES_ARCHITECTURE_SUBDIR_NAME}")
117120
endif()
118121

119122
get_bootstrapping_path(lib_dir

stdlib/public/Concurrency/CMakeLists.txt

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,6 @@ set(SWIFT_RUNTIME_CONCURRENCY_SWIFT_SOURCES
129129
Task+TaskExecutor.swift
130130
TaskCancellation.swift
131131
TaskGroup.swift
132-
TaskGroup+Embedded.swift
133132
DiscardingTaskGroup.swift
134133
TaskLocal.swift
135134
TaskSleep.swift
@@ -206,6 +205,12 @@ set(LLVM_OPTIONAL_SOURCES
206205
DispatchGlobalExecutor.cpp
207206
)
208207

208+
set(SWIFT_CONCURRENCY_GYB_SOURCES
209+
Task+init.swift.gyb
210+
TaskGroup+addTask.swift.gyb
211+
Task+immediate.swift.gyb
212+
)
213+
209214
add_swift_target_library(swift_Concurrency ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} IS_STDLIB
210215
${SWIFT_RUNTIME_CONCURRENCY_C_SOURCES}
211216
${SWIFT_RUNTIME_CONCURRENCY_EXECUTOR_SOURCES}
@@ -214,8 +219,7 @@ add_swift_target_library(swift_Concurrency ${SWIFT_STDLIB_LIBRARY_BUILD_TYPES} I
214219
${SWIFT_RUNTIME_CONCURRENCY_NONEMBEDDED_SWIFT_SOURCES}
215220

216221
GYB_SOURCES
217-
TaskGroup+addTask.swift.gyb
218-
Task+immediate.swift.gyb
222+
${SWIFT_CONCURRENCY_GYB_SOURCES}
219223

220224
SWIFT_MODULE_DEPENDS_ANDROID Android
221225
SWIFT_MODULE_DEPENDS_LINUX Glibc
@@ -303,8 +307,10 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB AND SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENC
303307
endif()
304308

305309
set(SWIFT_SDK_embedded_THREADING_PACKAGE none)
310+
set(SWIFT_SDK_embedded_ARCH_${arch}_MODULE "${mod}")
306311
set(SWIFT_SDK_embedded_ARCH_${mod}_MODULE "${mod}")
307312
set(SWIFT_SDK_embedded_LIB_SUBDIR "embedded")
313+
set(SWIFT_SDK_embedded_ARCH_${arch}_TRIPLE "${triple}")
308314
set(SWIFT_SDK_embedded_ARCH_${mod}_TRIPLE "${triple}")
309315

310316
# lib/swift/embedded/_Concurrency.swiftmodule
@@ -319,6 +325,9 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB AND SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENC
319325
${SWIFT_RUNTIME_CONCURRENCY_SWIFT_SOURCES}
320326
${SWIFT_RUNTIME_CONCURRENCY_EMBEDDED_SWIFT_SOURCES}
321327

328+
GYB_SOURCES
329+
${SWIFT_CONCURRENCY_GYB_SOURCES}
330+
322331
SWIFT_COMPILE_FLAGS
323332
${extra_swift_compile_flags} -enable-experimental-feature Embedded
324333
-parse-stdlib -DSWIFT_CONCURRENCY_EMBEDDED
@@ -328,7 +337,8 @@ if(SWIFT_SHOULD_BUILD_EMBEDDED_STDLIB AND SWIFT_SHOULD_BUILD_EMBEDDED_CONCURRENC
328337
${extra_c_compile_flags} ${SWIFT_RUNTIME_CONCURRENCY_C_FLAGS} -DSWIFT_CONCURRENCY_EMBEDDED=1 -DSWIFT_RUNTIME_EMBEDDED=1
329338
MODULE_DIR "${CMAKE_BINARY_DIR}/lib/swift/embedded"
330339
SDK "embedded"
331-
ARCHITECTURE "${mod}"
340+
ARCHITECTURE "${arch}"
341+
ARCHITECTURE_SUBDIR_NAME "${mod}"
332342
DEPENDS embedded-stdlib-${mod}
333343
INSTALL_IN_COMPONENT stdlib
334344
)

stdlib/public/Concurrency/SourceCompatibilityShims.swift

Lines changed: 0 additions & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -87,175 +87,6 @@ extension Task where Success == Never, Failure == Never {
8787
}
8888
}
8989

90-
@available(SwiftStdlib 5.1, *)
91-
extension Task where Failure == Error {
92-
#if SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY
93-
@discardableResult
94-
@_alwaysEmitIntoClient
95-
@available(*, unavailable, message: "Unavailable in task-to-thread concurrency model")
96-
public static func runDetached(
97-
priority: TaskPriority? = nil,
98-
operation: __owned @Sendable @escaping () async throws -> Success
99-
) -> Task<Success, Failure> {
100-
fatalError("Unavailable in task-to-thread concurrency model")
101-
}
102-
#else
103-
@discardableResult
104-
@_alwaysEmitIntoClient
105-
@available(*, deprecated, message: "`Task.runDetached` was replaced by `Task.detached` and will be removed shortly.")
106-
public static func runDetached(
107-
priority: TaskPriority? = nil,
108-
operation: __owned @Sendable @escaping () async throws -> Success
109-
) -> Task<Success, Failure> {
110-
detached(priority: priority, operation: operation)
111-
}
112-
#endif
113-
}
114-
115-
#if SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY
116-
@discardableResult
117-
@available(SwiftStdlib 5.1, *)
118-
@available(*, unavailable, message: "Unavailable in task-to-thread concurrency model")
119-
@_alwaysEmitIntoClient
120-
public func detach<T>(
121-
priority: TaskPriority? = nil,
122-
operation: __owned @Sendable @escaping () async -> T
123-
) -> Task<T, Never> {
124-
fatalError("Unavailable in task-to-thread concurrency model")
125-
}
126-
#else
127-
@discardableResult
128-
@available(SwiftStdlib 5.1, *)
129-
@available(*, deprecated, message: "`detach` was replaced by `Task.detached` and will be removed shortly.")
130-
@_alwaysEmitIntoClient
131-
public func detach<T>(
132-
priority: TaskPriority? = nil,
133-
operation: __owned @Sendable @escaping () async -> T
134-
) -> Task<T, Never> {
135-
Task.detached(priority: priority, operation: operation)
136-
}
137-
#endif
138-
139-
#if SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY
140-
@discardableResult
141-
@available(SwiftStdlib 5.1, *)
142-
@available(*, unavailable, message: "Unavailable in task-to-thread concurrency model")
143-
@_alwaysEmitIntoClient
144-
public func detach<T>(
145-
priority: TaskPriority? = nil,
146-
operation: __owned @Sendable @escaping () async throws -> T
147-
) -> Task<T, Error> {
148-
fatalError("Unavailable in task-to-thread concurrency model")
149-
}
150-
#else
151-
@discardableResult
152-
@available(SwiftStdlib 5.1, *)
153-
@available(*, deprecated, message: "`detach` was replaced by `Task.detached` and will be removed shortly.")
154-
@_alwaysEmitIntoClient
155-
public func detach<T>(
156-
priority: TaskPriority? = nil,
157-
operation: __owned @Sendable @escaping () async throws -> T
158-
) -> Task<T, Error> {
159-
Task.detached(priority: priority, operation: operation)
160-
}
161-
#endif
162-
163-
#if SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY
164-
@discardableResult
165-
@available(SwiftStdlib 5.1, *)
166-
@available(*, unavailable, message: "Unavailable in task-to-thread concurrency model")
167-
@_alwaysEmitIntoClient
168-
public func asyncDetached<T>(
169-
priority: TaskPriority? = nil,
170-
@_implicitSelfCapture operation: __owned @Sendable @escaping () async -> T
171-
) -> Task<T, Never> {
172-
fatalError("Unavailable in task-to-thread concurrency model")
173-
}
174-
#else
175-
@discardableResult
176-
@available(SwiftStdlib 5.1, *)
177-
@available(*, deprecated, message: "`asyncDetached` was replaced by `Task.detached` and will be removed shortly.")
178-
@_alwaysEmitIntoClient
179-
public func asyncDetached<T>(
180-
priority: TaskPriority? = nil,
181-
@_implicitSelfCapture operation: __owned @Sendable @escaping () async -> T
182-
) -> Task<T, Never> {
183-
return Task.detached(priority: priority, operation: operation)
184-
}
185-
#endif
186-
187-
#if SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY
188-
@discardableResult
189-
@available(SwiftStdlib 5.1, *)
190-
@available(*, unavailable, message: "Unavailable in task-to-thread concurrency model")
191-
@_alwaysEmitIntoClient
192-
public func asyncDetached<T>(
193-
priority: TaskPriority? = nil,
194-
@_implicitSelfCapture operation: __owned @Sendable @escaping () async throws -> T
195-
) -> Task<T, Error> {
196-
fatalError("Unavailable in task-to-thread concurrency model")
197-
}
198-
#else
199-
@discardableResult
200-
@available(SwiftStdlib 5.1, *)
201-
@available(*, deprecated, message: "`asyncDetached` was replaced by `Task.detached` and will be removed shortly.")
202-
@_alwaysEmitIntoClient
203-
public func asyncDetached<T>(
204-
priority: TaskPriority? = nil,
205-
@_implicitSelfCapture operation: __owned @Sendable @escaping () async throws -> T
206-
) -> Task<T, Error> {
207-
return Task.detached(priority: priority, operation: operation)
208-
}
209-
#endif
210-
211-
#if SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY
212-
@available(SwiftStdlib 5.1, *)
213-
@available(*, unavailable, message: "Unavailable in task-to-thread concurrency model")
214-
@discardableResult
215-
@_alwaysEmitIntoClient
216-
public func async<T>(
217-
priority: TaskPriority? = nil,
218-
@_inheritActorContext @_implicitSelfCapture operation: __owned @Sendable @escaping () async -> T
219-
) -> Task<T, Never> {
220-
fatalError("Unavailable in task-to-thread concurrency model")
221-
}
222-
#else
223-
@available(SwiftStdlib 5.1, *)
224-
@available(*, deprecated, message: "`async` was replaced by `Task.init` and will be removed shortly.")
225-
@discardableResult
226-
@_alwaysEmitIntoClient
227-
public func async<T>(
228-
priority: TaskPriority? = nil,
229-
@_inheritActorContext @_implicitSelfCapture operation: __owned @Sendable @escaping () async -> T
230-
) -> Task<T, Never> {
231-
.init(priority: priority, operation: operation)
232-
}
233-
#endif
234-
235-
#if SWIFT_STDLIB_TASK_TO_THREAD_MODEL_CONCURRENCY
236-
@available(SwiftStdlib 5.1, *)
237-
@available(*, unavailable, message: "Unavailable in task-to-thread concurrency model")
238-
@discardableResult
239-
@_alwaysEmitIntoClient
240-
public func async<T>(
241-
priority: TaskPriority? = nil,
242-
@_inheritActorContext @_implicitSelfCapture operation: __owned @Sendable @escaping () async throws -> T
243-
) -> Task<T, Error> {
244-
fatalError("Unavailable in task-to-thread concurrency model")
245-
}
246-
#else
247-
@available(SwiftStdlib 5.1, *)
248-
@available(*, deprecated, message: "`async` was replaced by `Task.init` and will be removed shortly.")
249-
@discardableResult
250-
@_alwaysEmitIntoClient
251-
public func async<T>(
252-
priority: TaskPriority? = nil,
253-
@_inheritActorContext @_implicitSelfCapture operation: __owned @Sendable @escaping () async throws -> T
254-
) -> Task<T, Error> {
255-
.init(priority: priority, operation: operation)
256-
}
257-
#endif
258-
25990
@available(SwiftStdlib 5.1, *)
26091
extension Task where Success == Never, Failure == Never {
26192
@available(*, deprecated, message: "`Task.Group` was replaced by `ThrowingTaskGroup` and `TaskGroup` and will be removed shortly.")

0 commit comments

Comments
 (0)