Replace Elvis operator (?:) by null coalesce operator (??) when applicable
A Psalm plugin to replace Elvis operator (?:) by null coalesce operator (??) when applicable
$ composer require --dev orklah/psalm-elvis-begone $ vendor/bin/psalm-plugin enable orklah/psalm-elvis-begone
Run Psalter command:
$ vendor/bin/psalm --alter --plugin=vendor/orklah/psalm-elvis-begone/src/Plugin.php
The short ternary operator (or Elvis operator ?: ) is used to evaluate return its condition if it's true or the second operand if it's not.
When the type is known and the only falsy value is null, we can actually replace it with the null coalesce operator (??) for strictness and clarity.
It will prevent future values to be evaluated to false when it was not the intention