Remove dangerous FlagValueDictionary functionality #126
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.
📒 Description
Remove dangerous FlagValueDictionary functionality:
🔍 Detailed Design
Include any additional information about the design here. At minimum, show any new API:
📓 Documentation Plan
I noticed CustomSources.md is outdated with the new
FlagValueSource
/NonSendableFlagValueSource
split, but updating that seems to be a separate task.🗳 Test Plan
Unit tests.
🧯 Source Impact
Removes FlagValueDictionary's conformance to Collection. This is a breaking change. Existing users of this conformance will need to use
allValues
, but that alone can't replace all uses of the Collection API. I didn't want to makeallValues
a mutable property though, because that would reintroduce the same kinds of unsafety that the Collection conformance did.Removes FlagValueDictionary's conformance to Equatable. This is a breaking change. Existing users of this conformance will need to check
sourceA.id == sourceB.id && sourceA.allValues == sourceB.allValues
to get an equivalent check (and also be aware that they may have a race condition since the FVD isSendable
)✅ Checklist