Support @_predatesConcurrency
on import declarations
#40679
Merged
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.
A
@_predatesConcurrency
import declaration suppresses or downgradesSendable
-related diagnostics, providing a way to more smoothly adopt concurrency even when one depends on modules that have yet to adoptSendable
. Allow@_predatesConcurrency
import declarations and provide them with the appropriate semantics:@_predatesConcurrency import
of a moduleX
suppressesSendable
diagnostics for nominal types defined inX
.@_predatesConcurrency import
of a moduleX
downgradesSendable
diagnostics for nominal types defined inX
to warnings.When we emit a
Sendable
-related diagnostic for a nominal type outside of the current module, produce a remark that suggests@_predatesConcurrency
on the corresponding import to silence the diagnostic, but only do this once per file. This will help folks makeSendable
diagnostics more manageable. When a@_predatesConcurrency
attribute on an import isn't doing anything (because there were no failedSendable
checks from that module), emit a remark that removes the now-unnecessary@_predatesConcurrency
.Implements rdar://84449015.