@@ -48,6 +48,7 @@ discard block |
||
| 48 | 48 | /** |
| 49 | 49 | * @param string[] $suppressed_issues |
| 50 | 50 | * @param 0|1|2 $failed_reconciliation |
| 51 | + * @param CodeLocation $code_location |
|
| 51 | 52 | */ |
| 52 | 53 | public static function reconcile( |
| 53 | 54 | string $assertion, |
@@ -368,6 +369,7 @@ discard block |
||
| 368 | 369 | /** |
| 369 | 370 | * @param string[] $suppressed_issues |
| 370 | 371 | * @param 0|1|2 $failed_reconciliation |
| 372 | + * @param null|integer $min_count |
|
| 371 | 373 | */ |
| 372 | 374 | private static function reconcileNonEmptyCountable( |
| 373 | 375 | Union $existing_var_type, |
@@ -1227,8 +1229,6 @@ discard block |
||
| 1227 | 1229 | } |
| 1228 | 1230 | |
| 1229 | 1231 | /** |
| 1230 | - * @param string[] $suppressed_issues |
|
| 1231 | - * @param 0|1|2 $failed_reconciliation |
|
| 1232 | 1232 | */ |
| 1233 | 1233 | private static function reconcileInArray( |
| 1234 | 1234 | Codebase $codebase, |
@@ -1271,8 +1271,6 @@ discard block |
||
| 1271 | 1271 | } |
| 1272 | 1272 | |
| 1273 | 1273 | /** |
| 1274 | - * @param string[] $suppressed_issues |
|
| 1275 | - * @param 0|1|2 $failed_reconciliation |
|
| 1276 | 1274 | */ |
| 1277 | 1275 | private static function reconcileHasArrayKey( |
| 1278 | 1276 | Union $existing_var_type, |
@@ -178,7 +178,6 @@ |
||
| 178 | 178 | * Parse a docblock comment into its parts. |
| 179 | 179 | * |
| 180 | 180 | * @param \PhpParser\Comment\Doc $docblock |
| 181 | - * @param bool $preserve_format |
|
| 182 | 181 | */ |
| 183 | 182 | public static function parsePreservingLength(\PhpParser\Comment\Doc $docblock) : ParsedDocblock |
| 184 | 183 | { |
@@ -290,9 +290,9 @@ |
||
| 290 | 290 | $catch_context->vars_in_scope[$catch_var_id] = new Union( |
| 291 | 291 | array_map( |
| 292 | 292 | /** |
| 293 | - * @param string $fq_catch_class |
|
| 293 | + * @param StatementsAnalyzer $fq_catch_class |
|
| 294 | 294 | * |
| 295 | - * @return Type\Atomic |
|
| 295 | + * @return false|null |
|
| 296 | 296 | */ |
| 297 | 297 | function ($fq_catch_class) use ($codebase) { |
| 298 | 298 | $catch_class_type = new TNamedObject($fq_catch_class); |
@@ -256,6 +256,7 @@ discard block |
||
| 256 | 256 | /** |
| 257 | 257 | * @param Aliases $aliases |
| 258 | 258 | * @param array<string, TypeAlias> $type_aliases |
| 259 | + * @param string|null $self_fqcln |
|
| 259 | 260 | * |
| 260 | 261 | * @throws DocblockParseException if there was a problem parsing the docblock |
| 261 | 262 | * |
@@ -361,7 +362,6 @@ discard block |
||
| 361 | 362 | } |
| 362 | 363 | |
| 363 | 364 | /** |
| 364 | - * @param int $line_number |
|
| 365 | 365 | * |
| 366 | 366 | * @throws DocblockParseException if there was a problem parsing the docblock |
| 367 | 367 | * |
@@ -466,6 +466,7 @@ discard block |
||
| 466 | 466 | |
| 467 | 467 | /** |
| 468 | 468 | * @param TValue ...$values |
| 469 | + * @param TValue[] $values |
|
| 469 | 470 | */ |
| 470 | 471 | public function contains(...$values): bool; |
| 471 | 472 | |
@@ -482,19 +483,20 @@ discard block |
||
| 482 | 483 | public function find($value); |
| 483 | 484 | |
| 484 | 485 | /** |
| 485 | - * @return TValue |
|
| 486 | + * @return TValue|null |
|
| 486 | 487 | * @throws \UnderflowException |
| 487 | 488 | */ |
| 488 | 489 | public function first(); |
| 489 | 490 | |
| 490 | 491 | /** |
| 491 | - * @return TValue |
|
| 492 | + * @return TValue|null |
|
| 492 | 493 | * @throws \OutOfRangeException |
| 493 | 494 | */ |
| 494 | 495 | public function get(int $index); |
| 495 | 496 | |
| 496 | 497 | /** |
| 497 | 498 | * @param TValue ...$values |
| 499 | + * @param TValue[] $values |
|
| 498 | 500 | * @throws \OutOfRangeException |
| 499 | 501 | */ |
| 500 | 502 | public function insert(int $index, ...$values); |
@@ -506,7 +508,7 @@ discard block |
||
| 506 | 508 | public function join(string $glue = null): string; |
| 507 | 509 | |
| 508 | 510 | /** |
| 509 | - * @return TValue |
|
| 511 | + * @return TValue|null |
|
| 510 | 512 | * @throws \UnderflowException |
| 511 | 513 | */ |
| 512 | 514 | public function last(); |
@@ -526,13 +528,14 @@ discard block |
||
| 526 | 528 | public function merge(iterable $values): Sequence; |
| 527 | 529 | |
| 528 | 530 | /** |
| 529 | - * @return TValue |
|
| 531 | + * @return TValue|null |
|
| 530 | 532 | * @throws \UnderflowException |
| 531 | 533 | */ |
| 532 | 534 | public function pop(); |
| 533 | 535 | |
| 534 | 536 | /** |
| 535 | 537 | * @param TValue ...$values |
| 538 | + * @param TValue[] $values |
|
| 536 | 539 | */ |
| 537 | 540 | public function push(...$values); |
| 538 | 541 | |
@@ -540,12 +543,12 @@ discard block |
||
| 540 | 543 | * @template TCarry |
| 541 | 544 | * @param callable(TCarry, TValue): TCarry $callback |
| 542 | 545 | * @param TCarry $initial |
| 543 | - * @return TCarry |
|
| 546 | + * @return TCarry|null |
|
| 544 | 547 | */ |
| 545 | 548 | public function reduce(callable $callback, $initial = null); |
| 546 | 549 | |
| 547 | 550 | /** |
| 548 | - * @return TValue |
|
| 551 | + * @return TValue|null |
|
| 549 | 552 | * @throws \OutOfRangeException |
| 550 | 553 | */ |
| 551 | 554 | public function remove(int $index); |
@@ -562,7 +565,7 @@ discard block |
||
| 562 | 565 | public function set(int $index, $value); |
| 563 | 566 | |
| 564 | 567 | /** |
| 565 | - * @return TValue |
|
| 568 | + * @return TValue|null |
|
| 566 | 569 | * @throws \UnderflowException |
| 567 | 570 | */ |
| 568 | 571 | public function shift(); |
@@ -585,6 +588,7 @@ discard block |
||
| 585 | 588 | |
| 586 | 589 | /** |
| 587 | 590 | * @param TValue ...$values |
| 591 | + * @param TValue[] $values |
|
| 588 | 592 | */ |
| 589 | 593 | public function unshift(...$values); |
| 590 | 594 | } |
@@ -739,6 +743,7 @@ discard block |
||
| 739 | 743 | |
| 740 | 744 | /** |
| 741 | 745 | * @param TValue ...$values |
| 746 | + * @param TValue[] $values |
|
| 742 | 747 | */ |
| 743 | 748 | public function add(...$values): void |
| 744 | 749 | { |
@@ -746,6 +751,7 @@ discard block |
||
| 746 | 751 | |
| 747 | 752 | /** |
| 748 | 753 | * @param TValue ...$values |
| 754 | + * @param TValue[] $values |
|
| 749 | 755 | */ |
| 750 | 756 | public function contains(...$values): bool |
| 751 | 757 | { |
@@ -819,6 +825,7 @@ discard block |
||
| 819 | 825 | |
| 820 | 826 | /** |
| 821 | 827 | * @param TValue ...$values |
| 828 | + * @param TValue[] $values |
|
| 822 | 829 | */ |
| 823 | 830 | public function remove(...$values): void |
| 824 | 831 | { |
@@ -917,6 +924,7 @@ discard block |
||
| 917 | 924 | |
| 918 | 925 | /** |
| 919 | 926 | * @param TValue ...$values |
| 927 | + * @param TValue[] $values |
|
| 920 | 928 | */ |
| 921 | 929 | public function push(...$values): void |
| 922 | 930 | { |
@@ -968,6 +976,7 @@ discard block |
||
| 968 | 976 | |
| 969 | 977 | /** |
| 970 | 978 | * @param TValue ...$values |
| 979 | + * @param TValue[] $values |
|
| 971 | 980 | */ |
| 972 | 981 | public function push(...$values): void |
| 973 | 982 | { |
@@ -69,6 +69,7 @@ discard block |
||
| 69 | 69 | |
| 70 | 70 | /** |
| 71 | 71 | * |
| 72 | + * @param PhpParser\Node\Expr|null $assign_value |
|
| 72 | 73 | * @return false|null |
| 73 | 74 | */ |
| 74 | 75 | public static function updateArrayType( |
@@ -745,6 +746,7 @@ discard block |
||
| 745 | 746 | |
| 746 | 747 | /** |
| 747 | 748 | * @param int|string|null $item_key_value |
| 749 | + * @param string|null $array_var_id |
|
| 748 | 750 | */ |
| 749 | 751 | private static function taintArrayAssignment( |
| 750 | 752 | StatementsAnalyzer $statements_analyzer, |
@@ -305,6 +305,9 @@ discard block |
||
| 305 | 305 | return true; |
| 306 | 306 | } |
| 307 | 307 | |
| 308 | + /** |
|
| 309 | + * @param string|null $keyed_array_var_id |
|
| 310 | + */ |
|
| 308 | 311 | private static function taintArrayFetch( |
| 309 | 312 | StatementsAnalyzer $statements_analyzer, |
| 310 | 313 | PhpParser\Node\Expr\ArrayDimFetch $stmt, |
@@ -1468,6 +1471,9 @@ discard block |
||
| 1468 | 1471 | return $array_access_type; |
| 1469 | 1472 | } |
| 1470 | 1473 | |
| 1474 | + /** |
|
| 1475 | + * @param null|string $array_var_id |
|
| 1476 | + */ |
|
| 1471 | 1477 | private static function checkLiteralIntArrayOffset( |
| 1472 | 1478 | Type\Union $offset_type, |
| 1473 | 1479 | Type\Union $expected_offset_type, |
@@ -1517,6 +1523,9 @@ discard block |
||
| 1517 | 1523 | } |
| 1518 | 1524 | } |
| 1519 | 1525 | |
| 1526 | + /** |
|
| 1527 | + * @param null|string $array_var_id |
|
| 1528 | + */ |
|
| 1520 | 1529 | private static function checkLiteralStringArrayOffset( |
| 1521 | 1530 | Type\Union $offset_type, |
| 1522 | 1531 | Type\Union $expected_offset_type, |
@@ -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, |