From b23e226b507d52e8c66eee68af639ddb70222c2a Mon Sep 17 00:00:00 2001 From: Markus Staab Date: Tue, 25 Oct 2022 10:29:40 +0200 Subject: [PATCH] tests --- tests/PHPStan/Analyser/data/pow.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/PHPStan/Analyser/data/pow.php b/tests/PHPStan/Analyser/data/pow.php index f4140b12532..c8628f3e767 100644 --- a/tests/PHPStan/Analyser/data/pow.php +++ b/tests/PHPStan/Analyser/data/pow.php @@ -57,8 +57,10 @@ function (): void { /** * @param positive-int $positiveInt * @param int $range2 + * @param int<-6, -4>|int<-2, -1> $unionRange1 + * @param int<4, 6>|int<1, 2> $unionRange2 */ -function foo($positiveInt, $range2): void { +function foo($positiveInt, $range2, $unionRange1, $unionRange2): void { $range = rand(2, 3); assertType('int<2, max>', pow($range, $positiveInt)); @@ -69,4 +71,13 @@ function foo($positiveInt, $range2): void { assertType('(float|int)', pow($range, PHP_INT_MAX)); assertType('(float|int)', $range ** PHP_INT_MAX); + + assertType('(float|int)', pow($range2, $positiveInt)); + assertType('(float|int)', $range2 ** $positiveInt); + + assertType('(float|int)', pow($positiveInt, $range2)); + assertType('(float|int)', $positiveInt ** $range2); + + assertType('int<-6, 16>|int<1296, 4096>|int<1, 16>|int<-2, 1>', pow($unionRange1, $unionRange2)); + assertType('int<-6, 16>|int<1296, 4096>|int<1, 16>|int<-2, 1>', $unionRange1 ** $unionRange2); }