1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-16 03:17:02 +01:00
Commit Graph

710 Commits

Author SHA1 Message Date
Brown
dbc7dea048 Fix #1601 - prevent threaded execution when pcre.jit is set to 1 2019-05-08 11:42:30 -04:00
Brown
b83f540b15 Prevent crash when iterator class does not exist 2019-05-08 11:03:47 -04:00
Matthew Brown
419d1da98d Fix issue where iterators weren’t processed recursively 2019-05-08 09:04:52 -04:00
Brown
d7ee952084 Infer closure param type for array_filter/array_map
Fixes #664
2019-05-07 16:27:25 -04:00
Brown
44f0c64877 Add extra debugging 2019-05-07 13:16:01 -04:00
Matthew Brown
4f8d6a50d8 Don’t emit MissingClosureReturnType when inside call and type can be inferred 2019-05-06 20:47:55 -04:00
Brown
fec1a60e90 Ref #1600 - partial fix inferring param types when none is available 2019-05-06 18:44:10 -04:00
Brown
751253ddf0 Fix #1603 - prevent invalid covariant template classes from being passed 2019-05-06 16:38:08 -04:00
Brown
8c9d8e7249 Add fully-qualified params to scanned classes 2019-05-03 11:55:27 -04:00
Brown
640c1d13a6 Fix unused variables now found in Psalm’s code 2019-05-02 17:21:23 -04:00
Brown
08bf101f48 Fix #1598, catching unused variables followed by try inside loop 2019-05-02 17:21:02 -04:00
Brown
86bf159bd0 Avoid false positive for param 2019-05-02 15:33:47 -04:00
Brown
4f26c8d749 Fix #1597 - ternary else should only know about first conditional expression 2019-05-02 13:43:18 -04:00
Matthew Brown
ae531506de Fix #1591 - allow variable typed to string to be compared to literal in reverse order 2019-05-02 00:50:35 -04:00
Matthew Brown
fbe10c1a1f Don’t allow empty coercion on generic type params
Fixes #1590
2019-05-02 00:19:56 -04:00
Matthew Brown
cacced782d Fix #1592 - allow methods with a simple exit to have the same treatment as those with a simple throw 2019-05-01 23:45:03 -04:00
Matthew Brown
0fe378a467 Fix #1593 - still inherit more specific docblock from parent when parent has no signature return 2019-05-01 23:14:22 -04:00
Brown
dcfe9bfdc1 Reduce memory load for forked analysis 2019-04-30 15:35:57 -04:00
Brown
d53ba0b826 Improve message 2019-04-30 13:26:11 -04:00
Brown
2fe5a72ab7 Fix #1586 - allow use of --find-unused-code as alternative to --find-dead-code 2019-04-30 13:23:18 -04:00
bugreportuser
1c160dab13 Fix typo in isAtomicContainedBy 2019-04-30 00:52:56 -04:00
Brown
b6e9fba8e6 Track method param uses between diff runs 2019-04-29 17:29:38 -04:00
Brown
f760ab6707 Add better reporting for errors 2019-04-29 12:07:34 -04:00
Matthew Brown
b4f24d1fa6 Fix a couple of tests, and track file references to classes 2019-04-28 12:59:36 -04:00
Matthew Brown
2ae0f92960 Store files-referencing-classes between runs to enable unreferenced code --diff mode 2019-04-28 12:36:24 -04:00
Matthew Brown
e08944cae0 Allow diff mode with --find-dead-code 2019-04-27 17:38:24 -04:00
Brown
29588c9fd8 Add ability to specify GitHub code owners 2019-04-26 11:23:26 -04:00
Matthew Brown
59e53acd56 Fix new template class array key coercion to mixed - when we don’t know, assume bottom type 2019-04-26 07:54:21 -04:00
Tyson Andre
dbcedd300b Fix error messages for $boolVar !== null
Seen for this example:

    $b = rand() % 2 > 0;
    if ($b !== null) { ... }
2019-04-26 00:19:46 -04:00
Brown
0e4c8ce482 Split apart TypeCoercion issues, allowing more granular issue filtering 2019-04-25 18:02:19 -04:00
Brown
f227af83c0 Allow mixed callable params to be valid 2019-04-24 12:54:35 -04:00
Matthew Brown
3681762a9b Add detection for callable variable use 2019-04-23 22:31:38 -04:00
Matthew Brown
c657a45132 Fix #1574 - detect docblock additions to the first statement of a method when diffing 2019-04-22 21:50:58 -04:00
Brown
473c8cb832 Fix checks for parent method implementers 2019-04-22 13:18:19 -04:00
Matthew Brown
d68e501bfa Fix #1528 - double check for missing dependency 2019-04-21 11:30:50 -04:00
Matthew Brown
e08ef35b79 Make sure callmap method return types ignore falsable 2019-04-21 11:30:50 -04:00
Matthew Brown
9be8013633 Add a way to ignore variable method & property calls 2019-04-20 17:49:49 -04:00
Matthew Brown
ec65197f41 Fix #1564 - scan functions if they’re not internal 2019-04-20 17:16:42 -04:00
Matthew Brown
764678d836 Fix #1567 - remove extraneous union 2019-04-20 16:09:55 -04:00
Brown
f3b7e16160 Shorten line 2019-04-19 12:03:52 -04:00
Brown
205fa36fb7 Add better error messages to unused code issues 2019-04-19 11:45:22 -04:00
Lars Moelleken
1a4e52c645 fixes from @villfa
-> ae368af8b3
2019-04-19 09:54:08 -04:00
Lars Moelleken
a3072d42b5 fix issue #1568 2019-04-19 09:54:08 -04:00
Brown
d6de6ca5d5 Prevent removing properties on classes with variable assignment 2019-04-18 14:47:58 -04:00
Brown
4807ebe04a Always evaluate static calls when method call cannot 2019-04-18 13:51:34 -04:00
Brown
d51475bc03 Register magic property get/set propertyExists calls 2019-04-18 10:41:46 -04:00
Brown
1eabe6ed55 Ignore protected properties redefined downstream 2019-04-17 16:55:15 -04:00
Brown
86c6b6fa36 Don’t warn about unused properties that override a used one 2019-04-17 16:41:35 -04:00
Brown
a529f74473 Add support for tracking callables 2019-04-17 15:45:40 -04:00
Brown
ac562563a7 Don’t remove trait methods 2019-04-17 15:12:52 -04:00
Brown
b1044b267d Don’t be greedy with lines 2019-04-17 14:58:13 -04:00
Brown
f51b073c40 Add switch for newline swallowing 2019-04-17 14:29:59 -04:00
Brown
cf36d50c65 Prevent removing too many lines 2019-04-17 14:27:36 -04:00
Brown
1b4b7d416e Fix off-by-one error 2019-04-17 14:07:17 -04:00
Brown
1f36a85650 Remove extraneous newlines 2019-04-17 13:56:47 -04:00
Brown
fea9faaec5 Allow psalter to be used in multithreaded mode 2019-04-17 13:15:06 -04:00
Brown
80e28d6a4a Add support for unused method & property automated removal 2019-04-17 11:12:18 -04:00
bugreportuser
2e147585a1 Allow ignoring exceptions only in global scope 2019-04-16 22:42:45 -04:00
Brown
282dd8e8ab Reduce memory footprint of multithreaded mode 2019-04-16 18:10:26 -04:00
Brown
ff14f671b1 Add hopefully-more-portable method for evaluating method/property usage 2019-04-16 16:07:48 -04:00
Lars Moelleken
74f3908555 "CallMap" fixes from phpstan
-> ae368af8b3
2019-04-16 11:23:32 -04:00
Brown
24084eb2ec Use more specific class name 2019-04-15 15:45:24 -04:00
Lars Moelleken
4ef63b5a3f [+]: fix "Iterator::key()" return type
-> https://github.com/phpstan/phpstan/issues/1382
2019-04-15 00:19:33 -04:00
Matthew Brown
ece191cc84 Add support for Scrutinizer output 2019-04-14 14:49:09 -04:00
Matthew Brown
934fb53d65 Improve error locations for PropertyNotSetInConstructor errors 2019-04-14 12:48:59 -04:00
Matthew Brown
ffec25da20 Fix #1556 - allow internal method calls when checking property initialisation s 2019-04-14 12:19:15 -04:00
bugreportuser
8454c0db39 Support for bitwise not 2019-04-14 10:16:38 -04:00
Lars Moelleken
0686d347c4 fix "grapheme_strlen()" return type
-> see 852485d8ec/ext/intl/grapheme/grapheme_string.c (L87)
2019-04-14 10:15:17 -04:00
Lars Moelleken
da0d06ab0a fix "mb_encode_numericentity()" without the "encoding" parameter
-> "The encoding parameter is the character encoding. If it is omitted, the internal character encoding value will be used." - https://www.php.net/manual/en/function.mb-encode-numericentity.php
2019-04-14 10:14:58 -04:00
Lars Moelleken
605364acd0 fix "iconv_strlen()" return type
-> some tests in "https://github.com/voku/portable-utf8" fails if I remove the false check e.g. for this string:

// string with UTF-16 (LE) BOM + valid UTF-8 && invalid UTF-8
$string = "\xFF\xFE" . 'string <strong>with utf-8 chars åèä</strong>' . "\xa0\xa1" . ' - doo-bee doo-bee dooh';
2019-04-14 10:14:23 -04:00
Matthew Brown
d145f17782 Fix #1548 - allow parallel execution with --find-dead-code 2019-04-13 15:38:09 -04:00
Matthew Brown
f3b605e442 Fix division by zero bug with --stats
Fixes #1552
2019-04-13 13:41:39 -04:00
Bruce Weirdan
8dda8a0ee4 cs fix 2019-04-13 12:35:49 -04:00
Bruce Weirdan
4daf94ca1d Case-insensitive checks for var_dump and shell_exec
Fixes vimeo/psalm#1547
2019-04-13 12:35:49 -04:00
Brown
26e2de93c7 Prepare to enable paralellised use of --find-dead-code
References #1548
2019-04-12 18:28:07 -04:00
Brown
6e010d9db9 Remove type coverage map, as it’s not ready for prime-time 2019-04-12 11:32:35 -04:00
Brown
b6d0ee0777 Prevent impossible === false comparison 2019-04-12 10:30:56 -04:00
Matthew Brown
39af691d2f Fix #1546 - catch impossible assertions to true 2019-04-12 09:38:56 -04:00
Matthew Brown
ea20a2bd04 Fix #1540 - use correct comparison for callable param types 2019-04-12 00:44:10 -04:00
Brown
7848e97f36 Allow DateTime::getTimestamp to return false 2019-04-11 14:57:50 -04:00
Brown
be5a262deb Add better handling for non-edge-case function calls 2019-04-11 14:53:21 -04:00
Brown
cadee4d988 Allow numeric to go into string|int|float 2019-04-11 11:25:18 -04:00
Brown
97f53a6486 @voku’s fixes for issues found by their callmap update 2019-04-11 11:02:46 -04:00
Brown
da163e926e Add callmap fixes collected by @voku in #1541 2019-04-11 10:58:27 -04:00
Matthew Brown
34ebf5c099 Add a couple of callmap fixes 2019-04-11 08:16:15 -04:00
Matthew Brown
9bfd10630d Update callmap from upstream psalm/PHPSignatures 2019-04-11 08:03:40 -04:00
Neznaenko Anton
c96fed64bc minor callmap fixes for Mongo/MongoClient::__construct and ReflectionMethod::getClosure 2019-04-11 07:10:10 -04:00
Brown
8f1dbc072d Allow empty offset sets on arrayaccess objects 2019-04-10 17:25:25 -04:00
Brown
7f8b47c5cf Fix buggy behaviour around callable tests 2019-04-09 18:09:57 -04:00
Brown
1a33b25264 Fix #1536 - prevent fatal error when filtering null array 2019-04-09 17:22:30 -04:00
Brown
5173c18cce Fix calls after updating callmap 2019-04-09 16:52:32 -04:00
Brown
72e0774eaf Add updates from PHPStan’s function map 2019-04-09 16:18:21 -04:00
Brown
808522c36f Add workaround SoapFault::__construct, fixing #1535 2019-04-09 15:06:10 -04:00
Brown
3dc3d659f1 Fix #1534 - allow unpacked args to be interpreted properly by overloaded functions 2019-04-09 14:48:51 -04:00
Brown
fb1eba9b61 Fix #1473 - add support for ...&x in docblocks 2019-04-09 14:23:48 -04:00
Brown
1348d634ed Improve handling of variadic parameters 2019-04-09 13:58:49 -04:00
Matthew Brown
54c76be63b Add date to Shepherd output 2019-04-08 21:51:33 -04:00
Matthew Brown
c63886fc36 Fix Psalm errors 2019-04-08 21:51:18 -04:00
Matthew Brown
cb1ed5f1ca Fix #1532 - ignore inaccessible method with implicit parent constructor call 2019-04-08 11:01:16 -04:00
Brown
115b68dc70 Fix #1526 - add a proper check for file storage 2019-04-03 17:41:33 -04:00