Fix equals operator with split state on right #56321
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.
Fixes #56298.
The expectation here is that except for
||
/&&
, a binary operator where both operands are not constant values and are not conditional accesses does not propagate out any conditional state. The modified code path in this PR is for just such an operator. Before we would actually propagate out conditional state from the right side, which doesn't make sense. The fix is to just use VisitRvalue instead of Visit here.Nullable doesn't use this code path and an ad-hoc check indicates that there isn't a corresponding bug present in nullable analysis.
Relates to test plan #51463