@@ -884,6 +884,7 @@ discard block |
||
| 884 | 884 | |
| 885 | 885 | /** |
| 886 | 886 | * @param non-empty-string $function_id |
| 887 | + * @param \Psalm\Storage\FunctionStorage|null $function_storage |
|
| 887 | 888 | */ |
| 888 | 889 | private static function getFunctionCallReturnType( |
| 889 | 890 | StatementsAnalyzer $statements_analyzer, |
@@ -1189,6 +1190,9 @@ discard block |
||
| 1189 | 1190 | return true; |
| 1190 | 1191 | } |
| 1191 | 1192 | |
| 1193 | + /** |
|
| 1194 | + * @param \Psalm\Storage\FunctionStorage|null $function_storage |
|
| 1195 | + */ |
|
| 1192 | 1196 | private static function checkFunctionCallPurity( |
| 1193 | 1197 | StatementsAnalyzer $statements_analyzer, |
| 1194 | 1198 | \Psalm\Codebase $codebase, |
@@ -588,7 +588,7 @@ discard block |
||
| 588 | 588 | |
| 589 | 589 | $array_values = array_map( |
| 590 | 590 | /** |
| 591 | - * @return PhpParser\Node\Expr\ArrayItem |
|
| 591 | + * @return boolean |
|
| 592 | 592 | */ |
| 593 | 593 | function (PhpParser\Node\Arg $arg) { |
| 594 | 594 | return new PhpParser\Node\Expr\ArrayItem($arg->value); |
@@ -1346,6 +1346,9 @@ discard block |
||
| 1346 | 1346 | return true; |
| 1347 | 1347 | } |
| 1348 | 1348 | |
| 1349 | + /** |
|
| 1350 | + * @param \Psalm\Storage\MethodStorage|null $method_storage |
|
| 1351 | + */ |
|
| 1349 | 1352 | private static function taintReturnType( |
| 1350 | 1353 | StatementsAnalyzer $statements_analyzer, |
| 1351 | 1354 | PhpParser\Node\Expr\StaticCall $stmt, |
@@ -2,11 +2,6 @@ discard block |
||
| 2 | 2 | |
| 3 | 3 | namespace Psalm\Internal\Codebase; |
| 4 | 4 | |
| 5 | -use Psalm\CodeLocation; |
|
| 6 | -use Psalm\Internal\Analyzer\StatementsAnalyzer; |
|
| 7 | -use Psalm\Internal\Provider\ClassLikeStorageProvider; |
|
| 8 | -use Psalm\Internal\Provider\FileReferenceProvider; |
|
| 9 | -use Psalm\Internal\Provider\FileStorageProvider; |
|
| 10 | 5 | use Psalm\Internal\Taint\Path; |
| 11 | 6 | use Psalm\Internal\Taint\Sink; |
| 12 | 7 | use Psalm\Internal\Taint\Source; |
@@ -17,7 +12,6 @@ discard block |
||
| 17 | 12 | use function array_merge; |
| 18 | 13 | use function array_merge_recursive; |
| 19 | 14 | use function strtolower; |
| 20 | -use UnexpectedValueException; |
|
| 21 | 15 | use function count; |
| 22 | 16 | use function implode; |
| 23 | 17 | use function substr; |
@@ -404,7 +404,7 @@ discard block |
||
| 404 | 404 | if ($storage instanceof MethodStorage) { |
| 405 | 405 | $non_null_param_types = array_filter( |
| 406 | 406 | $storage->params, |
| 407 | - /** @return bool */ |
|
| 407 | + /** @return null|false */ |
|
| 408 | 408 | function (FunctionLikeParameter $p) { |
| 409 | 409 | return $p->type !== null && $p->has_docblock_type; |
| 410 | 410 | } |
@@ -412,7 +412,7 @@ discard block |
||
| 412 | 412 | } else { |
| 413 | 413 | $non_null_param_types = array_filter( |
| 414 | 414 | $storage->params, |
| 415 | - /** @return bool */ |
|
| 415 | + /** @return null|false */ |
|
| 416 | 416 | function (FunctionLikeParameter $p) { |
| 417 | 417 | return $p->type !== null; |
| 418 | 418 | } |
@@ -425,7 +425,7 @@ discard block |
||
| 425 | 425 | ) { |
| 426 | 426 | $types_without_docblocks = array_filter( |
| 427 | 427 | $storage->params, |
| 428 | - /** @return bool */ |
|
| 428 | + /** @return null|false */ |
|
| 429 | 429 | function (FunctionLikeParameter $p) { |
| 430 | 430 | return !$p->type || !$p->has_docblock_type; |
| 431 | 431 | } |
@@ -839,6 +839,9 @@ discard block |
||
| 839 | 839 | return null; |
| 840 | 840 | } |
| 841 | 841 | |
| 842 | + /** |
|
| 843 | + * @param \Psalm\Storage\ClassLikeStorage|null $class_storage |
|
| 844 | + */ |
|
| 842 | 845 | private function checkParamReferences( |
| 843 | 846 | StatementsAnalyzer $statements_analyzer, |
| 844 | 847 | FunctionLikeStorage $storage, |
@@ -962,6 +965,7 @@ discard block |
||
| 962 | 965 | /** |
| 963 | 966 | * @param array<int, \Psalm\Storage\FunctionLikeParameter> $params |
| 964 | 967 | * @param array<int, Type\Union> $implemented_docblock_param_types |
| 968 | + * @param string|null $cased_method_id |
|
| 965 | 969 | */ |
| 966 | 970 | private function processParams( |
| 967 | 971 | StatementsAnalyzer $statements_analyzer, |
@@ -1471,7 +1475,6 @@ discard block |
||
| 1471 | 1475 | /** |
| 1472 | 1476 | * Adds return types for the given function |
| 1473 | 1477 | * |
| 1474 | - * @param string $return_type |
|
| 1475 | 1478 | * @param Context $context |
| 1476 | 1479 | * |
| 1477 | 1480 | * @return void |
@@ -691,6 +691,7 @@ |
||
| 691 | 691 | * @param string|null $cased_method_id |
| 692 | 692 | * @param FunctionLikeParameter|null $last_param |
| 693 | 693 | * @param array<int, FunctionLikeParameter> $function_params |
| 694 | + * @param FunctionLikeParameter[] $function_params |
|
| 694 | 695 | * @return false|null |
| 695 | 696 | */ |
| 696 | 697 | private static function handlePossiblyMatchingByRefParam( |