Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
TernaryToNullsafeCoalesceRectorcan change the behavior of an expression when its fallback is another ternary:When the object exists and its
nameis'name', the original expression returns'name', while the incorrect output returns'first'. During format-preserving printing of a newCoalesce, the reused ternary operand loses its original parentheses.Mark the right-hand ternary operand of a new
Coalescewith the existingWRAPPED_IN_PARENTHESESattribute. This preserves the original nodes and formatting, including rules that already set this attribute themselves.Add a regression fixture covering property access, a nullsafe method call, and a reversed comparison with
nullwith a short ternary fallback. The fixture fails on the original main branch and passes with this change.Validation on PHP 8.4:
composer check-cs,composer phpstan, and the fullvendor/bin/phpunitsuite pass: 4,903 tests, 5,928 assertions, and one existing skipped test. All 26 focused rule and printer tests also pass.