Hello Swift Community,
The review of SE-0431 "@isolated(any)
Function Types" ran from March 27 through April 9, 2024, and was extended to discuss syntactic issues of @isolated(any)
and semantic interactions with region-based isolation.
The Language Steering Group has decided to accept the proposal with one modification.
The proposal as originally reviewed stated that an @isolated(any)
function is implicitly @Sendable
. However, this was based on the assumption that a non-Sendable
@isolated(any)
could not meaningfully be used, which is not true given the semantics of SE-0414 "Region-based isolation" and it's follow-on proposal SE-0430. Therefore, this inference rule has been removed from SE-0431, and an @isolated(any)
can be marked @Sendable
(or not) just like other function tyoes.
On the question of the syntactic similarity between @isolated(any)
and isolated
parameters, the Language Steering Group determined that the proposal as specified is the best option for spelling this feature. Removing the @
to provide surface-level equivalence with isolated
parameters introduces parsing ambiguities and makes it less clear that it is part of the function type, while alternative names (such as @dynamicallyIsolated
) imply that there might be several new attributes in the new space. The proposal @isolated(...)
provides space for future expansion as needed within the same overall syntax.
Thank you to the authors and everyone who participated in the pitches and reviews.
Doug Gregor
Review Manager