From c00946189cc4546b4279dbb911ea2509531b7f16 Mon Sep 17 00:00:00 2001 From: Konrad 'ktoso' Malawski Date: Fri, 13 Jun 2025 07:21:23 +0900 Subject: [PATCH] [Concurrency] Deprecate extractIsolation --- stdlib/public/Concurrency/Actor.swift | 1 + test/Concurrency/isolated_any.swift | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/stdlib/public/Concurrency/Actor.swift b/stdlib/public/Concurrency/Actor.swift index 263783305006e..7cedc5ad815c7 100644 --- a/stdlib/public/Concurrency/Actor.swift +++ b/stdlib/public/Concurrency/Actor.swift @@ -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( _ fn: @escaping @isolated(any) (repeat each Arg) async throws -> Result ) -> (any Actor)? { diff --git a/test/Concurrency/isolated_any.swift b/test/Concurrency/isolated_any.swift index dd708fabbf35e..ca4564e493208 100644 --- a/test/Concurrency/isolated_any.swift +++ b/test/Concurrency/isolated_any.swift @@ -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(