# Isolated closures and @concurrent functions

**URL:** <https://forums.swift.org/t/isolated-closures-and-concurrent-functions/86614>\
**Category:** Compiler\
**Tags:** isolation\
**Created:** [May 9, 2026, 1:18pm UTC](https://forums.swift.org/t/isolated-closures-and-concurrent-functions/86614 "2026-05-09T13:18:52Z")\
**Posts on this page:** 1\
**Showing post:** 11

<div class="post-metadata">

**Author:** ![mattie](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/mattie/32/13267_2.png) [@mattie](https://forums.swift.org/u/mattie)\
**Post date:** [May 12, 2026, 10:09am UTC](https://forums.swift.org/t/isolated-closures-and-concurrent-functions/86614/11 "2026-05-12T10:09:04Z")

</div>

Sorry for taking so long to respond here. These are complex topics!

One thing I have found very tricky is the relationship between `@isolated(any)` , `@Sendable` and `sending`. In the [`@isolated(any)` proposal](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0431-isolated-any-functions.md), it is mentioned that originally the intention was to make `@isolated(any)` imply `@Sendable`. However, this was removed because RBI and `sending` were starting to take shape. But due to unfortunate timing, this was never revisited.

`@isolated(any)` functions really **need** to be `sending` at a minimum, and I believe that should be implied. I hope to see some movement here before too long.

Now, the proposal **also** goes into a little detail on what it would mean for an explicit type to be included as an argument to `@isolated`. And my understanding, which is superficial, is that such a change would be extremely complex.

Now, if I'm following what you are saying, I _think_ you are heading towards the idea that `@isolated(MainActor)` would be equivalent to `@MainActor`. But, there's a problem. Because, [at least today](https://forums.swift.org/t/guarantees-on-global-actor-type-and-shared-instances/85687), it is possible to create new instances of type `MainActor` that are not `MainActor.shared`.

As for the case of isolated parameters, this is an area of great complexity and subtly. Closure captures do affect static isolation, but I find this to be both unintuitive and problematic in a number of situations. I'm not saying what you've suggested is unreasonable - more that how things are implemented _today_ is unreasonable.

---

_[View the full topic](https://forums.swift.org/t/isolated-closures-and-concurrent-functions/86614)._
