[Concurrency] Deprecate extractIsolation

This commit is contained in:
Konrad 'ktoso' Malawski
2025-06-13 07:21:23 +09:00
parent 1484f1c5be
commit c00946189c
2 changed files with 5 additions and 4 deletions

View File

@@ -125,6 +125,7 @@ public macro Task(
#if $IsolatedAny
@_alwaysEmitIntoClient
@available(SwiftStdlib 5.1, *)
@available(*, deprecated, message: "Use `.isolation` on @isolated(any) closure values instead.")
public func extractIsolation<each Arg, Result>(
_ fn: @escaping @isolated(any) (repeat each Arg) async throws -> Result
) -> (any Actor)? {

View File

@@ -88,12 +88,12 @@ func testConvertIsolatedAnyToMainActor(fn: @Sendable @isolated(any) () -> ()) {
}
func extractFunctionIsolation(_ fn: @isolated(any) @Sendable @escaping () async -> Void) {
let _: (any Actor)? = extractIsolation(fn)
let _: (any Actor)? = extractIsolation(fn) // expected-warning{{'extractIsolation' is deprecated: Use `.isolation` on @isolated(any) closure values instead.}}
let myActor = A()
let _: (any Actor)? = extractIsolation(myActor.asyncActorFunction)
let _: (any Actor)? = extractIsolation(myActor.asyncThrowsActorFunction)
let _: (any Actor)? = extractIsolation(myActor.actorFunctionWithArgs(value:))
let _: (any Actor)? = extractIsolation(myActor.asyncActorFunction) // expected-warning{{'extractIsolation' is deprecated: Use `.isolation` on @isolated(any) closure values instead.}}
let _: (any Actor)? = extractIsolation(myActor.asyncThrowsActorFunction) // expected-warning{{'extractIsolation' is deprecated: Use `.isolation` on @isolated(any) closure values instead.}}
let _: (any Actor)? = extractIsolation(myActor.actorFunctionWithArgs(value:)) // expected-warning{{'extractIsolation' is deprecated: Use `.isolation` on @isolated(any) closure values instead.}}
}
func extractFunctionIsolationExpr(