one caveat – aliasing isolated parameters via local variables seems to currently be an exception to this, which is quite confusing IMO (and i think i've finally located Swift Evolution-based evidence that it is a bug).
'all the angst out there' is perhaps rooted in the fact that until the Swift 6.0 compiler (released ~8 months ago), the Task
initializer would have to first switch to the concurrent executor before scheduling its operation on the 'right' executor. this required a new language feature (@isolated(any)
) to address. so Tasks wouldn't necessarily run in the order in which they were declared even if their work had the same isolation. if for whatever reason you find yourself still compiling code with an older compiler, things will (i think) still work that way.