|
30 | 30 | use function array_key_exists; |
31 | 31 | use function count; |
32 | 32 | use function implode; |
| 33 | +use function is_int; |
33 | 34 | use function is_string; |
34 | 35 | use function max; |
35 | 36 | use function sprintf; |
@@ -331,7 +332,7 @@ public function check( |
331 | 332 | $verbosityLevel = VerbosityLevel::getRecommendedLevelByType($parameterType, $argumentValueType); |
332 | 333 | $errors[] = RuleErrorBuilder::message(sprintf( |
333 | 334 | $wrongArgumentTypeMessage, |
334 | | - $this->describeParameter($parameter, $argumentName === null ? $i + 1 : null), |
| 335 | + $this->describeParameter($parameter, $argumentName ?? $i + 1), |
335 | 336 | $parameterType->describe($verbosityLevel), |
336 | 337 | $argumentValueType->describe($verbosityLevel), |
337 | 338 | )) |
@@ -409,7 +410,7 @@ public function check( |
409 | 410 | } |
410 | 411 |
|
411 | 412 | $errors[] = RuleErrorBuilder::message(sprintf( |
412 | | - 'Parameter %s is passed by reference so it does not accept %s.', |
| 413 | + '%s is passed by reference so it does not accept %s.', |
413 | 414 | $this->describeParameter($parameter, $argumentName === null ? $i + 1 : null), |
414 | 415 | $propertyDescription, |
415 | 416 | ))->identifier('argument.byRef')->line($argumentLine)->build(); |
@@ -625,11 +626,15 @@ private function processArguments( |
625 | 626 | return [$errors, $newArguments]; |
626 | 627 | } |
627 | 628 |
|
628 | | - private function describeParameter(ParameterReflection $parameter, ?int $position): string |
| 629 | + private function describeParameter(ParameterReflection $parameter, int|string|null $positionOrNamed): string |
629 | 630 | { |
630 | 631 | $parts = []; |
631 | | - if ($position !== null) { |
632 | | - $parts[] = '#' . $position; |
| 632 | + if (is_int($positionOrNamed)) { |
| 633 | + $parts[] = 'Parameter #' . $positionOrNamed; |
| 634 | + } elseif (is_string($positionOrNamed)) { |
| 635 | + $parts[] = 'Named argument ' . $positionOrNamed . ' for variadic parameter'; |
| 636 | + } else { |
| 637 | + $parts[] = 'Parameter'; |
633 | 638 | } |
634 | 639 |
|
635 | 640 | $name = $parameter->getName(); |
|
0 commit comments