diff --git a/src/Mutator/Removal/ArrayItemRemoval.php b/src/Mutator/Removal/ArrayItemRemoval.php index 1b54a4857..c491eab0f 100644 --- a/src/Mutator/Removal/ArrayItemRemoval.php +++ b/src/Mutator/Removal/ArrayItemRemoval.php @@ -66,15 +66,17 @@ public function __construct(MutatorConfig $config) $this->limit = $settings['limit']; } + /** + * @param Node|Node\Expr\Array_ $arrayNode + * @return Node|Node[]|\Generator + */ public function mutate(Node $arrayNode): Generator { - if ($arrayNode instanceof Node\Expr\Array_) { - foreach ($this->getItemsIndexes($arrayNode->items) as $indexToRemove) { - $newArrayNode = clone $arrayNode; - unset($newArrayNode->items[$indexToRemove]); + foreach ($this->getItemsIndexes($arrayNode->items) as $indexToRemove) { + $newArrayNode = clone $arrayNode; + unset($newArrayNode->items[$indexToRemove]); - yield $newArrayNode; - } + yield $newArrayNode; } } diff --git a/tests/Mutator/Removal/ArrayItemRemovalTest.php b/tests/Mutator/Removal/ArrayItemRemovalTest.php index f5ecdb5cc..9b3e3a950 100644 --- a/tests/Mutator/Removal/ArrayItemRemovalTest.php +++ b/tests/Mutator/Removal/ArrayItemRemovalTest.php @@ -56,7 +56,6 @@ public function provideMutationCases(): Generator { yield 'It does not mutate empty arrays' => [ ' [ @@ -113,7 +112,11 @@ public function provideMutationCases(): Generator public function test_settings_validation(string $setting, $value, string $valueInError): void { $this->expectException(InvalidConfigException::class); - $this->expectExceptionMessage("Invalid configuration of ArrayItemRemoval mutator. Setting `$setting` is invalid ($valueInError)"); + $this->expectExceptionMessage(sprintf( + 'Invalid configuration of ArrayItemRemoval mutator. Setting `%s` is invalid (%s)', + $setting, + $valueInError + )); $this->doTest( '