Support And/Or linking with DictionaryContainsKeyValuePairConstraint #4672
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.
Fixes #4670
The implementation of #3486 did not combine the the key and value checks, which lead to issues when combining with
AndorOr. This PR adds theInsteadOperatorwith high precedence which allows to replace theDictionaryContainsKeyConstraintwith theDictionaryContainsKeyValuePairConstraintsince there is no other nice way to replace an entry on theConstraintStackthat would also work with correct precedence.I initially tried to use the
AndOperator, but this would fail inDoes.Notcases as theNotOperatorwould apply to the key-check before the AND would be applied.I also tried using
Contraint.With(which is currently an alias forAndand NOT usingWithOperator). But that would also only bind the key on the right side and adds the value afterwards.