diff --git a/src/TypeResolver.php b/src/TypeResolver.php index 0c9a73c..ca36026 100644 --- a/src/TypeResolver.php +++ b/src/TypeResolver.php @@ -550,7 +550,7 @@ private function resolveIntRange(ArrayIterator $tokens): Type ); } - if (!$minValue || !$maxValue || $tokenCounter > 4) { + if ($minValue === null || $maxValue === null || $tokenCounter > 4) { throw new RuntimeException( 'int has not the correct format' ); diff --git a/tests/unit/PseudoTypes/IntRangeTest.php b/tests/unit/PseudoTypes/IntRangeTest.php index ca9bb06..f5d9293 100644 --- a/tests/unit/PseudoTypes/IntRangeTest.php +++ b/tests/unit/PseudoTypes/IntRangeTest.php @@ -36,6 +36,8 @@ public function provideArrays(): array { return [ 'simple int range' => [new IntegerRange('-5', '5'), 'int<-5, 5>'], + 'zero int range v1' => [new IntegerRange('0', '1'), 'int<0, 1>'], + 'zero int range v2' => [new IntegerRange('-5', '0'), 'int<-5, 0>'], 'mixed int range' => [new IntegerRange('min', '5'), 'int'], 'keyword int range' => [new IntegerRange('min', 'max'), 'int'], ];