# SE-0530: Async Result Support

**URL:** <https://forums.swift.org/t/se-0530-async-result-support/86346>\
**Category:** Proposal Reviews\
**Created:** [April 29, 2026, 9:12pm UTC](https://forums.swift.org/t/se-0530-async-result-support/86346 "2026-04-29T21:12:45Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Douglas\_Gregor](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/douglas_gregor/32/1362_2.png) [@Douglas\_Gregor](https://forums.swift.org/u/Douglas_Gregor)\
**Post date:** [April 29, 2026, 9:12pm UTC](https://forums.swift.org/t/se-0530-async-result-support/86346/1 "2026-04-29T21:12:45Z")

</div>

Hi everyone,

The review of [SE-0530 "Async Result Support"](https://github.com/swiftlang/swift-evolution/blob/main/proposals/0530-async-result-support.md) begins now and runs through **May 12, 2026**.

Reviews are an important part of the Swift evolution process. All review feedback should be either on this forum thread or, if you would like to keep your feedback private, directly to the review manager via the forum messaging feature. When contacting the review manager directly, please keep the proposal link at the top of the message.

#### What goes into a review?

The goal of the review process is to improve the proposal under review through constructive criticism and, eventually, determine the direction of Swift. When writing your review, here are some questions you might want to answer in your review:

- What is your evaluation of the proposal?
- Is the problem being addressed significant enough to warrant a change to Swift?
- Does this proposal fit well with the feel and direction of Swift?
- If you have used other languages or libraries with a similar feature, how do you feel that this proposal compares to those?
- How much effort did you put into your review? A glance, a quick reading, or an in-depth study?

More information about the Swift evolution process is available at [https://github.com/swiftlang/swift-evolution/blob/main/process.md](https://github.com/swiftlang/swift-evolution/blob/main/process.md).

Thanks for contributing to Swift!

Doug Gregor  
Review Manager

---

<div class="post-metadata">

**Author:** ![Dmitriy\_Ignatyev](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/dmitriy_ignatyev/32/11340_2.png) [@Dmitriy\_Ignatyev](https://forums.swift.org/u/Dmitriy_Ignatyev)\
**Post date:** [April 29, 2026, 9:25pm UTC](https://forums.swift.org/t/se-0530-async-result-support/86346/2 "2026-04-29T21:25:42Z")

</div>

+1, this is a very welcome addition.

One other set of helpers I often find myself copying between projects (and have seen in other codebases) includes:

- **var** isSuccess: Bool
- **var** isFailure: Bool
- **var** value: Success?
- **var** error: Failure?
- **func** mapAsVoid() -\> Result\<Void, Failure\>
- **var** infallibleValue: Success ( **where** Failure == Never)

Would it be worth considering adding these as part of the standard `Result` API as well?

---

<div class="post-metadata">

**Author:** ![clayellis](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/clayellis/32/43646_2.png) [@clayellis](https://forums.swift.org/u/clayellis)\
**Post date:** [April 30, 2026, 12:10am UTC](https://forums.swift.org/t/se-0530-async-result-support/86346/3 "2026-04-30T00:10:04Z")

</div>

+1, I needed this last week and was happy to have come across the pitch thread.

I'm glad to see this is a targeted proposal and I think what's been proposed deserves to exist in the Standard Library. It fills a real hole in the API for the result of an async operation and feels natural. I don't have experience in other languages, but did find that when copying the implementation from the pitch thread it worked exactly as I needed it to. No comment on the ancillary ideas to augment Result from the pitch thread.

---

<div class="post-metadata">

**Author:** ![tourultimate](https://avatars.discourse-cdn.com/v4/letter/t/85f322/32.png) [@tourultimate](https://forums.swift.org/u/tourultimate)\
**Post date:** [April 30, 2026, 3:19pm UTC](https://forums.swift.org/t/se-0530-async-result-support/86346/4 "2026-04-30T15:19:06Z")

</div>

+1, have similar extension in several code-bases at this point. Would be good to see it in the standard library.

---

<div class="post-metadata">

**Author:** ![grynspan](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/grynspan/32/15315_2.png) [@grynspan](https://forums.swift.org/u/grynspan)\
**Post date:** [April 30, 2026, 6:38pm UTC](https://forums.swift.org/t/se-0530-async-result-support/86346/5 "2026-04-30T18:38:27Z")

</div>

I am firmly in favour of adding this interface. It's long overdue! I _think_ the result of the body closure might need to be `sending`?

> [@Dmitriy\_Ignatyev](#):
>
> One other set of helpers I often find myself copying between projects (and have seen in other codebases) includes:

The `Result` type already effectively has all of these interfaces:

| Proposed | Real |
| --- | --- |
| `isSuccess` | `case .success` |
| `isFailure` | `case .failure` |
| `value` | `try? get()` or `case .success(let value)` |
| `error` | `case .failure(let error)` |
| `mapAsVoid()` | `map { _ in }` |
| `infallibleValue` | `get()` |

I recognize the ergonomics of all these alternatives aren't the same (in particular, pattern-matching with `case` isn't always usable in place of an expression) but a proposal to add some or all of these interfaces would need to firmly establish that they're a significant improvement.

---

<div class="post-metadata">

**Author:** ![FranzBusch](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/franzbusch/32/19447_2.png) [@FranzBusch](https://forums.swift.org/u/FranzBusch)\
**Post date:** [April 30, 2026, 8:29pm UTC](https://forums.swift.org/t/se-0530-async-result-support/86346/6 "2026-04-30T20:29:47Z")

</div>

> [@grynspan](#):
>
> I am firmly in favour of adding this interface. It's long overdue! I _think_ the result of the body closure might need to be `sending`?

No it doesn't have to. The closure is `nonisolated(nonsending)` and `Result` is conditionally `Sendable` on `Success`. This means that the value returned from `body` will be tied to the current isolation region. Similarly, the `Result` itself will be tied to the current isolation region. This means it cannot be sent across isolation domains.

---

<div class="post-metadata">

**Author:** ![itMaxence](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/itmaxence/32/18187_2.png) [@itMaxence](https://forums.swift.org/u/itMaxence)\
**Post date:** [May 2, 2026, 3:39pm UTC](https://forums.swift.org/t/se-0530-async-result-support/86346/7 "2026-05-02T15:39:18Z")

</div>

+1 That looks great! I'm wondering if this would work with typed throw tho? Or would it need some explicit `Result<Bool, SomeTypedError>` to avoid loosing the error type?

---

<div class="post-metadata">

**Author:** ![John\_McCall](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/john_mccall/32/1351_2.png) [@John\_McCall](https://forums.swift.org/u/John_McCall)\
**Post date:** [May 4, 2026, 7:26pm UTC](https://forums.swift.org/t/se-0530-async-result-support/86346/9 "2026-05-04T19:26:22Z")

</div>

That is why that API has not been accepted on `Result` yet; it feels like it might be better as a general improvement to enum pattern-matching.

At any rate, we don't need to discuss this further in this review. This API is a reasonable addition on its own, and it's okay for proposals to be narrow. Other additions should be separately pitched.

---

<div class="post-metadata">

**Author:** ![Douglas\_Gregor](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/douglas_gregor/32/1362_2.png) [@Douglas\_Gregor](https://forums.swift.org/u/Douglas_Gregor)\
**Post date:** [May 14, 2026, 3:37pm UTC](https://forums.swift.org/t/se-0530-async-result-support/86346/10 "2026-05-14T15:37:29Z")

</div>

This proposal has been [accepted](https://forums.swift.org/t/accepted-se-0530-async-result-support/86725), thank you everyone!

Doug

---

<div class="post-metadata">

**Author:** ![John\_McCall](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/john_mccall/32/1351_2.png) [@John\_McCall](https://forums.swift.org/u/John_McCall)\
**Post date:** [May 14, 2026, 4:09pm UTC](https://forums.swift.org/t/se-0530-async-result-support/86346/11 "2026-05-14T16:09:41Z")

</div>


