Barney Laurance
059d1ef177
psalm-internal - prevent static call to psalm-internal class from other namespace
2019-05-14 18:54:16 -04:00
Barney Laurance
4415ef0dbd
psalm-internal - prevent invalid extention of class internal to other namespace
2019-05-14 18:54:16 -04:00
Brown
f1d8b1e6e7
Prevent extending covariant template params
...
Fixes #1610
2019-05-14 18:51:30 -04:00
Brown
7fbbe964cb
Fix #1609 - warn when using covariant template type as input
2019-05-14 18:17:38 -04:00
Brown
10272c2da1
Fix #1636 - don’t allow invalid phpdoc to be outputted
2019-05-14 17:41:22 -04:00
Brown
e7f4a52d2b
Use better metric for a properly mismatching type
2019-05-14 16:15:38 -04:00
Ilija Tovilo
91fbb976ab
Remove unused properties
2019-05-14 15:50:08 -04:00
Brown
30cbcb6c36
Add ImplementedParamTypeMismatch issue
...
Fixes #1633
2019-05-14 15:44:46 -04:00
Ilija Tovilo
2c36a10ac8
Fix #1622 - add allow-backwards-incompatible-changes flag to psalter
...
The flag prevents psalter from adding native return types
2019-05-13 17:59:31 -04:00
Matthew Brown
f33745ad25
Fix parameter offset for error
2019-05-13 16:01:41 -04:00
Matthew Brown
fe0f352132
Fix #1628 - improve behaviour of unset in loops
2019-05-13 11:00:17 -04:00
Matthew Brown
f8b4b12ec2
Fix #1622 - don’t update return types in docblocks when overridden elsewhere
2019-05-13 09:04:26 -04:00
Matthew Brown
9b4d841414
Allow return type errors to be suppressed locally
2019-05-13 08:54:34 -04:00
Matthew Brown
c6e29322c0
Fix unset bug
2019-05-13 01:35:29 -04:00
Matthew Brown
bfcf3cdc99
Fix #1627 - don’t stub already-stubbed functions
2019-05-13 00:24:31 -04:00
Matthew Brown
7c2fe53446
Fix #1391 - find dead code in assignments to self
2019-05-12 23:31:36 -04:00
Matthew Brown
a3a208a7c9
Remove unused variables
2019-05-12 23:13:27 -04:00
Matthew Brown
307cdbbbb3
Fix #1626 - detect dead code found in #1624
2019-05-12 20:49:37 -04:00
Lars Moelleken
abc825a0c4
revert some changes for "array"-functions + merge fixes from phpstan
...
thx @bugreportuser
2019-05-12 19:37:46 -04:00
Matthew Brown
721865d14b
Ignore falsable return for array_combine
2019-05-12 19:37:46 -04:00
Lars Moelleken
399a337e09
revert "array_change_key_case()" changes
...
-> https://github.com/vimeo/psalm/pull/1605#discussion_r281034696
2019-05-12 19:37:46 -04:00
Lars Moelleken
54a14055af
"usort": revert small change in the phpdoc
2019-05-12 19:37:46 -04:00
Lars Moelleken
0b5680f72f
fix return type of "array_combine()" && "array_replace()"
2019-05-12 19:37:46 -04:00
Tyson Andre
d4f1a4a75f
Remove unused variables/comment params
2019-05-11 22:11:38 -04:00
Brown
c935dfd990
Fix #1620 - escape characters in XML
2019-05-10 18:07:57 -04:00
Brown
feff357a75
Be smarter about discovering files
2019-05-10 18:07:13 -04:00
Brown
48d624e305
Fix #1619 - prevent tests from being added automatically on --init
2019-05-10 11:00:50 -04:00
Brown
9b75683796
Search better, and avoid fatal error
2019-05-09 19:34:38 -04:00
Brown
335b04186b
Add autodiscovery of --init folders based on composer.json
2019-05-09 19:19:33 -04:00
Brown
33d4888228
Fix #1618 - conditionally enable autocompletion for methods and properties
2019-05-09 11:20:13 -04:00
Brown
24dbc34bbe
Use better solution for inherited more-specific return types
2019-05-09 10:41:30 -04:00
Brown
629eeed3e6
Fix incorrect message when inheriting parent docblock
2019-05-09 10:26:06 -04:00
Ramon Bakker
6a473f6e71
Fix isset check
...
Check if index exists in the array with open files, instead of checking
if index exists in the array with temporary files.
2019-05-09 08:31:16 -04:00
Brown
111abf82da
Fix #1616 - allow Psalm to output checkstyle format
2019-05-08 14:26:52 -04:00
Brown
b7529e872b
Consider intersections when combining generic types
2019-05-08 13:23:47 -04:00
Brown
1db0e38b08
Invalidate cache when Psalm version changes
2019-05-08 11:58:34 -04:00
Brown
42b10e1376
Add link to PHP bug
2019-05-08 11:48:37 -04:00
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
57a585240c
Allow is_subclass_of/is_a to inform shape of mixed arg
2019-05-06 10:06:05 -04:00
Jonathan H. Wage
ecb7a6c069
Add support for absolute plugin paths.
2019-05-05 16:44:36 -04:00
Brown
dd40987187
Consolidate location of issue handling
2019-05-03 17:12:20 -04:00
Brown
d1574a64a4
Move issue type listing
2019-05-03 15:29:44 -04:00
Brown
8c9d8e7249
Add fully-qualified params to scanned classes
2019-05-03 11:55:27 -04:00
Matthew Brown
49acdfc764
Fix issue when reconciling is_subclass_of on possibly-undefined variable
2019-05-03 09:09:51 -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
5674193922
Add a warning when fixing unused code issues without accompanying detection
2019-04-30 15:06:42 -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
b9bece4cbc
Allow MixedArrayTypeCoercion to be properly suppressed by default
2019-04-29 12:19:51 -04:00
Brown
f760ab6707
Add better reporting for errors
2019-04-29 12:07:34 -04:00
Brown
1413ccd111
Prevent phar path rejiggering
2019-04-29 11:33:13 -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
Matthew Brown
82e0bcafac
Fix #1578 - fix empty array error
2019-04-26 00:47:42 -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
Brown
d1f4622a80
Fix #1542 - disable SQL parsing by default
2019-04-22 10:01:25 -04:00
Matthew Brown
cd74e227c1
Remove var_dump
2019-04-21 11:42:43 -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
79ae72d553
Fix #935 - allow Phar to run without composer files
2019-04-20 16:37:27 -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
50035334d4
Add more descriptive message for autoloader error
2019-04-18 12:12:43 -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
Matthew Brown
01f005290e
Allow file path to be passed into methodExists
2019-04-17 00:17:49 -04:00
bugreportuser
2e147585a1
Allow ignoring exceptions only in global scope
2019-04-16 22:42:45 -04:00
Brown
4abdc1503f
Prevent --update-baseline from running in --diff mode
...
Fixes #1566
2019-04-16 18:16:46 -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
c297b91d6f
Fix possibly null property
2019-04-14 13:04:25 -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
Matthew Brown
21fd385eb4
Fix brackets
2019-04-12 20:30:28 -04:00
Brown
26e2de93c7
Prepare to enable paralellised use of --find-dead-code
...
References #1548
2019-04-12 18:28:07 -04:00
Brown
f5fcde6b89
Fix false casing
2019-04-12 15:39:38 -04:00
Brown
a86bbad796
Add support for regexes as referencedMethods
2019-04-12 15:15:21 -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
8751bf232b
Improve handling of negated boolean operations
2019-04-12 11:26:33 -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
a9b8952ea2
Fix #1545 - improve handling of negated binary ops
2019-04-11 18:51:21 -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
Brown
1cbe288a10
Add date
2019-04-11 10:49:29 -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