diff --git a/dictionaries/CallMap.php b/dictionaries/CallMap.php index f8326105b00..b56990e74da 100644 --- a/dictionaries/CallMap.php +++ b/dictionaries/CallMap.php @@ -1543,7 +1543,7 @@ 'Couchbase\WildcardSearchQuery::jsonSerialize' => ['array'], 'Couchbase\zlibCompress' => ['string', 'data'=>'string'], 'Couchbase\zlibDecompress' => ['string', 'data'=>'string'], -'count' => ['int', 'value'=>'Countable|array', 'mode='=>'int'], +'count' => ['int<0, max>', 'value'=>'Countable|array', 'mode='=>'int'], 'count_chars' => ['array', 'input'=>'string', 'mode='=>'0|1|2'], 'count_chars\'1' => ['string', 'input'=>'string', 'mode='=>'3|4'], 'Countable::count' => ['int'], diff --git a/dictionaries/CallMap_80_delta.php b/dictionaries/CallMap_80_delta.php index e961f2bcf26..46359e3eae3 100644 --- a/dictionaries/CallMap_80_delta.php +++ b/dictionaries/CallMap_80_delta.php @@ -290,8 +290,8 @@ 'new' => ['bool', 'typelib_name'=>'string', 'case_insensitive='=>'true'], ], 'count' => [ - 'old' => ['int', 'value'=>'Countable|array|SimpleXMLElement', 'mode='=>'int'], - 'new' => ['int', 'value'=>'Countable|array', 'mode='=>'int'], + 'old' => ['int<0, max>', 'value'=>'Countable|array|SimpleXMLElement', 'mode='=>'int'], + 'new' => ['int<0, max>', 'value'=>'Countable|array', 'mode='=>'int'], ], 'count_chars' => [ 'old' => ['array|false', 'input'=>'string', 'mode='=>'0|1|2'], diff --git a/dictionaries/CallMap_historical.php b/dictionaries/CallMap_historical.php index 142f58167f8..95ce41a6a32 100644 --- a/dictionaries/CallMap_historical.php +++ b/dictionaries/CallMap_historical.php @@ -10084,7 +10084,7 @@ 'copy' => ['bool', 'from'=>'string', 'to'=>'string', 'context='=>'resource'], 'cos' => ['float', 'num'=>'float'], 'cosh' => ['float', 'num'=>'float'], - 'count' => ['int', 'value'=>'Countable|array|SimpleXMLElement', 'mode='=>'int'], + 'count' => ['int<0, max>', 'value'=>'Countable|array|SimpleXMLElement', 'mode='=>'int'], 'count_chars' => ['array|false', 'input'=>'string', 'mode='=>'0|1|2'], 'count_chars\'1' => ['string|false', 'input'=>'string', 'mode='=>'3|4'], 'crack_check' => ['bool', 'dictionary'=>'', 'password'=>'string'], diff --git a/tests/FunctionCallTest.php b/tests/FunctionCallTest.php index f435b70067d..6c0b0958c56 100644 --- a/tests/FunctionCallTest.php +++ b/tests/FunctionCallTest.php @@ -1220,6 +1220,13 @@ function example(callable $x) : int { return count($x); }', ], + 'countOnObjectShouldBePositive' => [ + 'code' => ' [ 'code' => ' 'TypeDoesNotContainType', ], - 'countOnObjectCannotBePositive' => [ - 'code' => ' 'LessSpecificReturnStatement', - ], 'countOnUnknownObjectCannotBePure' => [ 'code' => '