Avoid negated conditionals in filter()
by using reject()
, or vice versa.
use Illuminate\Support\Collection;
$collection = new Collection([0, 1, null, -1]);
-$collection->filter(fn (?int $number): bool => ! is_null($number));
-$collection->filter(fn (?int $number): bool => ! $number);
-$collection->reject(fn (?int $number) => ! $number > 0);
+$collection->reject(fn (?int $number): bool => is_null($number)); // Avoid negation
+$collection->reject(fn (?int $number): bool => (bool) $number); // Explicitly cast
+$collection->filter(fn (?int $number): bool => $number > 0); // Adds return type
Configure your rector.php
:
<?php
use RectorLaravel\Rector\MethodCall\AvoidNegatedCollectionFilterOrRejectRector;
use Rector\Config\RectorConfig;
return RectorConfig::configure()
->withRules([
AvoidNegatedCollectionFilterOrRejectRector::class,
]);