-
Notifications
You must be signed in to change notification settings - Fork 10.5k
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
DougGregor
merged 10 commits into
swiftlang:main
from
bjhomer:disable-property-wrapper-based-isolation
Jun 28, 2023
Merged
Disable actor inference from property wrapper usage #63884
DougGregor
merged 10 commits into
swiftlang:main
from
bjhomer:disable-property-wrapper-based-isolation
Jun 28, 2023
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
@swift-ci please smoke test |
@swift-ci please build toolchain |
@swift-ci please build toolchain macOS |
@swift-ci please smoke test |
@swift-ci please build toolchain |
DougGregor
approved these changes
Jun 27, 2023
…property wrappers
@swift-ci please smoke test |
DougGregor
approved these changes
Jun 27, 2023
@swift-ci please smoke test |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.