add control of exclusivity for Bool Flags when inversion is enabled #62
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
Constructors for Bool Flags with inverted pairs do not have a
FlagExclusivityparameter (#60). This PR adds aFlagExclusivityparameter to two of the Flag constructors.Detailed Design
On
Flag,becomes
In the process, the logic to handle flag exclusivity collision was refactored to a new static function on
ArgumentSet, and is used forBoolflags with inversions as well as flags built fromCaseIterableenums.Documentation Plan
The new parameter has been documented in the doc comments.
Test Plan
New tests are added to
FlagsEndToEndTestsand toErrorMessageTestsSource Impact
The parameter is additive with a default value, and therefore is source compatible.
Checklist
This resolves #60 and #61