Skip to content

Commit 2769046

Browse files
kukulichondrejmirtes
authored andcommitted
StrictFunctionCallsRule: distinguish between "parameter is not true" and "parameter is missing"
1 parent 36d7142 commit 2769046

2 files changed

Lines changed: 10 additions & 11 deletions

File tree

src/Rules/StrictCalls/StrictFunctionCallsRule.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,13 @@ public function processNode(\PhpParser\Node $node, \PHPStan\Analyser\Scope $scop
5151
}
5252

5353
$argumentPosition = $this->functionArguments[$functionName];
54-
$message = sprintf('Call to function %s() requires parameter #%d to be true.', $functionName, $argumentPosition + 1);
5554
if (!array_key_exists($argumentPosition, $node->args)) {
56-
return [$message];
55+
return [sprintf('Call to function %s() requires parameter #%d to be set.', $functionName, $argumentPosition + 1)];
5756
}
5857

5958
$argumentType = $scope->getType($node->args[$argumentPosition]->value);
6059
if (!$argumentType instanceof \PHPStan\Type\TrueBooleanType) {
61-
return [$message];
60+
return [sprintf('Call to function %s() requires parameter #%d to be true.', $functionName, $argumentPosition + 1)];
6261
}
6362

6463
return [];

tests/Rules/StrictCalls/StrictFunctionCallsRuleTest.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,51 +16,51 @@ public function testRule(): void
1616
{
1717
$this->analyse([__DIR__ . '/data/strict-calls.php'], [
1818
[
19-
'Call to function in_array() requires parameter #3 to be true.',
19+
'Call to function in_array() requires parameter #3 to be set.',
2020
5,
2121
],
2222
[
2323
'Call to function in_array() requires parameter #3 to be true.',
2424
7,
2525
],
2626
[
27-
'Call to function in_array() requires parameter #3 to be true.',
27+
'Call to function in_array() requires parameter #3 to be set.',
2828
8,
2929
],
3030
[
31-
'Call to function array_search() requires parameter #3 to be true.',
31+
'Call to function array_search() requires parameter #3 to be set.',
3232
10,
3333
],
3434
[
3535
'Call to function array_search() requires parameter #3 to be true.',
3636
12,
3737
],
3838
[
39-
'Call to function array_search() requires parameter #3 to be true.',
39+
'Call to function array_search() requires parameter #3 to be set.',
4040
13,
4141
],
4242
[
43-
'Call to function base64_decode() requires parameter #2 to be true.',
43+
'Call to function base64_decode() requires parameter #2 to be set.',
4444
15,
4545
],
4646
[
4747
'Call to function base64_decode() requires parameter #2 to be true.',
4848
17,
4949
],
5050
[
51-
'Call to function base64_decode() requires parameter #2 to be true.',
51+
'Call to function base64_decode() requires parameter #2 to be set.',
5252
18,
5353
],
5454
[
55-
'Call to function array_keys() requires parameter #3 to be true.',
55+
'Call to function array_keys() requires parameter #3 to be set.',
5656
20,
5757
],
5858
[
5959
'Call to function array_keys() requires parameter #3 to be true.',
6060
22,
6161
],
6262
[
63-
'Call to function array_keys() requires parameter #3 to be true.',
63+
'Call to function array_keys() requires parameter #3 to be set.',
6464
23,
6565
],
6666
]);

0 commit comments

Comments
 (0)