[Accepted with modifications] SE-0401: Remove Actor Isolation Inference caused by Property Wrappers

Hello, Swift community!

The review of SE-0401: Remove Actor Isolation Inference caused by Property Wrappers ended on June 30th. The Language Steering Group has decided to accept the proposal with the modification to change the feature identifier to DisableOutwardActorInference .

Review feedback was overall positive, and many reviewers confirmed that the current actor isolation inference from property wrappers propagated out to the enclosing type is confounding. There was minor constructive feedback about the name of the upcoming feature identifier, and whether the compiler should issue warnings in Swift 5 mode.

Reviewers discussed whether the name of the upcoming feature identifier should be more concise. The Language Steering Group decided to accept the proposal with the feature identifier DisableOutwardActorInference , because this identifier is much more concise than DisableActorInferenceFromPropertyWrapperUsage while still conveying the confusing behavior that the proposal removes - actor inference from a member of a type propagating outward to the entire enclosing type.

Reviewers also discussed whether the compiler should issue a warning in Swift 5 mode where actor isolation inference will change under Swift 6. The proposal author noted that the warning would not be silenceable if the programmer does not want to isolate the enclosing type without removing the use of property wrappers altogether (e.g. by desugaring the property wrapper to mark the computed property as @MainActor). The Language Steering Group believes this would result in more code churn than without the warnings, and programmers can still opt into diagnostics to prepare for Swift 6 using the upcoming feature flag. However, the Language Steering Group believes that separate migration tooling to help programmers audit code whose behavior will change under Swift 6 mode would be beneficial for all upcoming features that can change behavior without necessarily emitting errors. Migration tooling for enabling upcoming features will be explored separately.

Thank you to everyone who participated in the pitch and proposal review! Your contributions help make Swift a better language.

Holly Borla
Review Manager

10 Likes