Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5e4c5d8

Browse files
committed
Only report maybe cases at level 7
1 parent c2c2b88 commit 5e4c5d8

File tree

2 files changed

+19
-8
lines changed

2 files changed

+19
-8
lines changed

‎conf/config.level5.neon‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@ parameters:
1414
services:
1515
-
1616
class: PHPStan\Rules\Functions\RandomIntParametersRule
17+
arguments:
18+
reportMaybes: %reportMaybes%

‎src/Rules/Functions/RandomIntParametersRule.php‎

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,13 @@ class RandomIntParametersRule implements \PHPStan\Rules\Rule
2121
/** @var ReflectionProvider */
2222
private $reflectionProvider;
2323

24-
public function __construct(ReflectionProvider $reflectionProvider)
24+
/** @var bool */
25+
private $reportMaybes;
26+
27+
public function __construct(ReflectionProvider $reflectionProvider, bool $reportMaybes)
2528
{
2629
$this->reflectionProvider = $reflectionProvider;
30+
$this->reportMaybes = $reportMaybes;
2731
}
2832

2933
public function getNodeType(): string
@@ -59,13 +63,18 @@ public function processNode(Node $node, Scope $scope): array
5963
if (!$maxPermittedType->isSuperTypeOf($maxType)->yes()) {
6064
$message = 'Parameter #1 $min (%s) of function random_int expects lower number than parameter #2 $max (%s).';
6165

62-
return [
63-
RuleErrorBuilder::message(sprintf(
64-
$message,
65-
$minType->describe(VerbosityLevel::value()),
66-
$maxType->describe(VerbosityLevel::value())
67-
))->build(),
68-
];
66+
// True if sometimes the parameters conflict.
67+
$isMaybe = !$maxType->isSuperTypeOf($minType)->no();
68+
69+
if (!$isMaybe || $this->reportMaybes) {
70+
return [
71+
RuleErrorBuilder::message(sprintf(
72+
$message,
73+
$minType->describe(VerbosityLevel::value()),
74+
$maxType->describe(VerbosityLevel::value())
75+
))->build(),
76+
];
77+
}
6978
}
7079
}
7180

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /