Skip to content

Disable actor inference from property wrapper usage #63884

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged

Conversation

bjhomer
Copy link
Contributor

@bjhomer bjhomer commented Feb 24, 2023

This PR disables global actor inference based on a type's usage of property wrappers. It is part of the Swift Evolution proposal being pitched here.

Currently in Swift, if a type that uses a property wrapper with an actor-isolated wrappedValue, that type is itself inferred to be isolated to the same actor. This PR disables that behavior in the Swift 6 language mode. It also implements an -enable-upcoming-feature DisableActorInferenceFromPropertyWrapperUsage flag that can be used to get the same behavior in the Swift 5 language mode.

In Swift 5, isolation will continue, but will now produce a warning
and a fix-it suggesting that the user add explicit isolation
…ft 5.

In many cases, the inferrence was unexpected and undesired. We shouldn't warn the user about something that is reasonably likely to be correct.
`HasMainActorWrappedProp` was testing the inference rule that a type
that uses actor-isolated property wrappers its itself isolated to that
same actor. In Swift 6, that inference has been removed, so this test
now verifies that the type is _not_ actor isolated.
This will be enabled by default in Swift 6, but can now also be enabled by passing `-enable-upcoming-feature DisableActorInferenceFromPropertyWrapperUsage` to the compiler.
@bjhomer bjhomer marked this pull request as ready for review February 24, 2023 14:00
@DougGregor
Copy link
Member

@swift-ci please smoke test

@DougGregor
Copy link
Member

@swift-ci please build toolchain

@DougGregor
Copy link
Member

@swift-ci please build toolchain macOS

@bjhomer bjhomer requested a review from tshortli as a code owner May 1, 2023 14:39
@xedin xedin requested review from DougGregor and removed request for xedin May 10, 2023 17:00
@DougGregor
Copy link
Member

@swift-ci please smoke test

@DougGregor
Copy link
Member

@swift-ci please build toolchain

@DougGregor
Copy link
Member

@swift-ci please smoke test

@DougGregor
Copy link
Member

@swift-ci please smoke test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants