[Accepted] SE-0470: Global actor-isolated conformances

Hi all,

The review of SE-0470: Global actor-isolated conformances concluded on April 3, 2025. The language steering group has decided to accept the proposal with the author's changes during review.

Feedback was positive for the overall feature but explored some trickier details of the proposed design. In particular:

  • The alternative design to spell nonisolated conformances in generic requirements has many questions yet to be worked out. The steering group agreed that the originally pitched approach using SendableMetatype is a narrower one which is likely to present fewer issues—however, it remains possible that there are holes in even the accepted model which will require patches.

  • While backdeployment on specific platforms is generally out of scope for Evolution, the steering group does acknowledge that the behavior of dynamic casting on older runtimes does present an issue affecting the user experience. Namely, on runtimes that pre-date isolated protocol conformances, casting a value of type C: @MainActor P to any P either must succeed where sometimes it should not, admitting data races, or it must fail where it should not, rendering the feature broadly unusable. The steering group agrees that the former behavior is nonetheless a net move in the right direction; it would fall upon tooling to provide opt-in diagnostics that can help users identify backdeployment issues.

  • This proposal rejects runtime casts to any Sendable & P where the value is of a concrete type that has an isolated conformance to P. However, there is an existing hole where runtime casts involving Sendable that ought to be prohibited succeed if accomplished by calling a generic function. This existing hole, therefore, now admits data races and cannot be closed without Sendable conformances being recorded in runtime metadata. As such a change is well out of scope for this proposal, we acknowledge the already-existing hole but do not think it bars approval of the overall proposal.

Thank you, as always, to all participants in this review process for helping to make Swift a better language.

Xiaodi Wu

9 Likes