Skip to content

Commit ea435a4

Browse files
staabmondrejmirtes
authored andcommitted
Prevent unnecessary work around parametersAcceptor->getParameters() call-sites
1 parent ecad71b commit ea435a4

File tree

8 files changed

+15
-16
lines changed

8 files changed

+15
-16
lines changed

build/PHPStan/Build/AttributeNamedArgumentsRule.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,12 @@ public function processNode(Node $node, Scope $scope): array
4848
return [];
4949
}
5050

51-
$parameters = $variants[0]->getParameters();
52-
5351
foreach ($node->args as $arg) {
5452
if ($arg->name !== null) {
5553
break;
5654
}
5755

56+
$parameters = $variants[0]->getParameters();
5857
return [
5958
RuleErrorBuilder::message(sprintf('Attribute %s is not using named arguments.', $node->name->toString()))
6059
->identifier('phpstan.attributeWithoutNamedArguments')

src/Analyser/ArgumentsNormalizer.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,6 @@ public static function reorderArgs(ParametersAcceptor $parametersAcceptor, array
193193
return [];
194194
}
195195

196-
$signatureParameters = $parametersAcceptor->getParameters();
197-
198196
$hasNamedArgs = false;
199197
foreach ($callArgs as $arg) {
200198
if ($arg->name !== null) {
@@ -208,6 +206,7 @@ public static function reorderArgs(ParametersAcceptor $parametersAcceptor, array
208206

209207
$hasVariadic = false;
210208
$argumentPositions = [];
209+
$signatureParameters = $parametersAcceptor->getParameters();
211210
foreach ($signatureParameters as $i => $parameter) {
212211
if ($hasVariadic) {
213212
// variadic parameter must be last

src/Analyser/MutatingScope.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2398,7 +2398,8 @@ private function enterFunctionLike(
23982398
{
23992399
$parametersByName = [];
24002400

2401-
foreach ($functionReflection->getParameters() as $parameter) {
2401+
$functionParameters = $functionReflection->getParameters();
2402+
foreach ($functionParameters as $parameter) {
24022403
$parametersByName[$parameter->getName()] = $parameter;
24032404
}
24042405

@@ -2411,7 +2412,7 @@ private function enterFunctionLike(
24112412
$nativeExpressionTypes = $this->nativeExpressionTypes;
24122413
}
24132414

2414-
foreach ($functionReflection->getParameters() as $parameter) {
2415+
foreach ($functionParameters as $parameter) {
24152416
$parameterType = $parameter->getType();
24162417

24172418
if ($parameterType instanceof ConditionalTypeForParameter) {

src/Reflection/ParametersAcceptorSelector.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,6 @@ public static function selectFromArgs(
8787
) {
8888
$arrayMapArgs = $args[0]->value->getAttribute(ArrayMapArgVisitor::ATTRIBUTE_NAME);
8989
if ($arrayMapArgs !== null) {
90-
$acceptor = $parametersAcceptors[0];
91-
$parameters = $acceptor->getParameters();
9290
$callbackParameters = [];
9391
foreach ($arrayMapArgs as $arg) {
9492
$argType = $scope->getType($arg->value);
@@ -107,6 +105,8 @@ public static function selectFromArgs(
107105
}
108106
}
109107

108+
$acceptor = $parametersAcceptors[0];
109+
$parameters = $acceptor->getParameters();
110110
if (isset($parameters[0])) {
111111
$parameters[0] = new NativeParameterReflection(
112112
$parameters[0]->getName(),

src/Rules/Functions/ParameterCastableToStringRule.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ public function processNode(Node $node, Scope $scope): array
7171
);
7272

7373
$errorMessage = 'Parameter %s of function %s expects an array of values castable to string, %s given.';
74-
$functionParameters = $parametersAcceptor->getParameters();
7574

7675
if (in_array($functionName, $checkAllArgsFunctions, true)) {
7776
$argsToCheck = $origArgs;
@@ -92,7 +91,7 @@ public function processNode(Node $node, Scope $scope): array
9291
}
9392

9493
$errors = [];
95-
94+
$functionParameters = $parametersAcceptor->getParameters();
9695
foreach ($argsToCheck as $argIdx => $arg) {
9796
$error = $this->parameterCastableToStringCheck->checkParameter(
9897
$arg,

src/Rules/Functions/SortParameterCastableToStringRule.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@ public function processNode(Node $node, Scope $scope): array
6868
$functionReflection->getNamedArgumentsVariants(),
6969
);
7070

71-
$functionParameters = $parametersAcceptor->getParameters();
72-
7371
$normalizedFuncCall = ArgumentsNormalizer::reorderFuncArguments($parametersAcceptor, $node);
7472

7573
if ($normalizedFuncCall === null) {
@@ -81,6 +79,7 @@ public function processNode(Node $node, Scope $scope): array
8179
return [];
8280
}
8381

82+
$functionParameters = $parametersAcceptor->getParameters();
8483
$argsToCheck = [0 => $normalizedArgs[0]];
8584
$flags = null;
8685
if (array_key_exists(1, $normalizedArgs)) {

src/Rules/Methods/MethodSignatureRule.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,16 +110,18 @@ public function processNode(Node $node, Scope $scope): array
110110
$errors[] = $builder->build();
111111
}
112112

113-
$parameterResults = $this->checkParameterTypeCompatibility($declaringClass, $method->getParameters(), $parentVariant->getParameters());
113+
$methodParameters = $method->getParameters();
114+
$parentVariantParameters = $parentVariant->getParameters();
115+
$parameterResults = $this->checkParameterTypeCompatibility($declaringClass, $methodParameters, $parentVariantParameters);
114116
foreach ($parameterResults as $parameterIndex => [$parameterResult, $parameterType, $parentParameterType]) {
115117
if ($parameterResult->yes()) {
116118
continue;
117119
}
118120
if (!$parameterResult->no() && !$this->reportMaybes) {
119121
continue;
120122
}
121-
$parameter = $method->getParameters()[$parameterIndex];
122-
$parentParameter = $parentVariant->getParameters()[$parameterIndex];
123+
$parameter = $methodParameters[$parameterIndex];
124+
$parentParameter = $parentVariantParameters[$parameterIndex];
123125
$errors[] = RuleErrorBuilder::message(sprintf(
124126
'Parameter #%d $%s (%s) of method %s::%s() should be %s with parameter $%s (%s) of method %s::%s()',
125127
$parameterIndex + 1,

src/Type/Php/ArrayCountValuesDynamicReturnTypeExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
use PHPStan\Type\Constant\ConstantArrayType;
1212
use PHPStan\Type\DynamicFunctionReturnTypeExtension;
1313
use PHPStan\Type\IntegerRangeType;
14-
use PHPStan\Type\IntersectionType;
1514
use PHPStan\Type\IntegerType;
15+
use PHPStan\Type\IntersectionType;
1616
use PHPStan\Type\NeverType;
1717
use PHPStan\Type\StringType;
1818
use PHPStan\Type\Type;

0 commit comments

Comments
 (0)