Skip to content

Commit 68f8585

Browse files
committed
[rbi] Implement support for non-Sendable base values.
There are a few major changes here: 1. We now return a TrackableValue from getTrackableValue() if we have either a non-Sendable value or a non-Sendable base. This means that we /will/ return TrackableValues that may have a Sendable value or a Sendable base. To make it easier to work with this, I moved the isSendable check and the do I have a base check into PartitionOpBuilder. So, most of the actual code around emitting values does not need to reason about this. They can just call addRequire or addSend and pass in either TrackableValue::value or TrackableValue::base without needing to check if the former is non-Sendable or if the latter is non-Sendable and non-nil. 2. I searched all of the places where we were grabbing trackable values and inserted require checks for the base value as appropriate. Both of these together have prevented the code from becoming too heavy. This fixes https://forums.swift.org/t/lets-debug-missing-rbi-data-race-diagnostics/78910 rdar://149019222 (cherry picked from commit 6d8b9b0)
1 parent ed98efa commit 68f8585

File tree

2 files changed

+306
-142
lines changed

2 files changed

+306
-142
lines changed

0 commit comments

Comments
 (0)