Matt Brown
a4b6cb83db
Fix #4264 - prevent crash when analysing file with duplicate classes
2021-01-29 11:39:44 +01:00
Matt Brown
a6e3d46d62
Treat func_get_args as using function params
2021-01-29 11:39:44 +01:00
Matt Brown
63953d5676
4.x - refactor unused variable detection
...
This turns unused variable detection into an explicit control-flow problem, where before we had a more simplistic mark-and-sweep algorithm
2021-01-29 11:39:44 +01:00
Matt Brown
5351a07cea
Fix analysis when there’s a break in a loop after a reassignment
2021-01-29 11:39:43 +01:00
Brown
5e8e183667
Add improvements from unused variable checks
2021-01-29 11:39:43 +01:00
Brown
ee2149342e
Add more unused variable tests
2021-01-29 11:39:43 +01:00
Brown
cf2872c285
Ensure loop marks vars as possibly assigned
2021-01-29 11:39:43 +01:00
Bruce Weirdan
ecec9dd040
Fixes crash due to class/filename mismatch ( #4247 )
...
Introduced in 56cddd16bf
2021-01-29 11:39:43 +01:00
Brown
f5019d92e2
Fix unused var in finally false-positive
2021-01-29 11:39:43 +01:00
Brown
1893147aed
Prevent duplicate switch return types
2021-01-29 11:39:43 +01:00
Brown
5177511a72
Fix test result
2021-01-29 11:39:42 +01:00
Brown
999a8aa4a8
Move taint graph functionality into its own object
2021-01-29 11:39:42 +01:00
Brown
d666d93950
Add more tests for unused variables
2021-01-29 11:39:42 +01:00
orklah
e3e5a55907
unused use statements ( #4228 )
2021-01-29 11:39:42 +01:00
Brown
d40cc0b35b
Skip currently-failing undefined variable test
2021-01-29 11:39:41 +01:00
Brown
734b9c3833
Detect more issues inside finally block
2021-01-29 11:39:41 +01:00
Brown
0856354b48
Rename TaintGraph to ControlFlowGraph because it’s about to do more
2021-01-29 11:39:41 +01:00
Brown
364f8f1a01
Add back necessary suppression
2021-01-29 11:39:40 +01:00
Brown
c288dac4de
Fix tests
2021-01-29 11:39:40 +01:00
Brown
dbe4b4c708
Localise taint analysis better
2021-01-29 11:39:40 +01:00
Brown
291c067dc5
Rename Taint object to TaintGraph
2021-01-29 11:39:40 +01:00
orklah
9f00b8536a
fix test on windows ( #4225 )
2021-01-29 11:39:40 +01:00
orklah
f1aba254be
Use array destructuring when possible ( #4221 )
...
* list usage
* fix inversion
2021-01-29 11:39:39 +01:00
Brown
c0bf0a8fa7
Fix #4198 - make analysis of class-string property assignments more robust
2021-01-29 11:39:39 +01:00
orklah
b559951bf4
replace deprecated methods with their equivalent ( #4217 )
2021-01-29 11:39:39 +01:00
orklah
3652d51275
Remove empty() and use strict comparison when safe ( #4211 )
...
* replace empty usage with stricter checks
* use strict comparison when safe
* replace is_null with === null for consistency
2021-01-29 11:39:39 +01:00
Brown
ec64ae930a
Fix a couple of false-positive redundant conditions
2021-01-29 11:39:38 +01:00
Brown
1b10f11217
Fix tests
2021-01-29 11:39:38 +01:00
Brown
ff2c18aa67
Fix #4208 - array with possibly-undefined keys isn‘t really sealed
2021-01-29 11:39:38 +01:00
Brown
e7333ec4db
Fix #4209 - allow hinting arrow function return type
2021-01-29 11:39:38 +01:00
Brown
1b6ecfc128
Fix #4210 - fix __invoke declaration tracing
2021-01-29 11:39:38 +01:00
Brown
7e534d14d0
Improve accuracy of array_filter
2021-01-29 11:39:37 +01:00
Brown
f8e7b649c7
Improve array_merge return type
2021-01-29 11:39:37 +01:00
Brown
95cc274192
Support more array intersections in type parsing
2021-01-29 11:39:37 +01:00
Brown
376a825161
Fix regression – detect unused params with defaults again
2021-01-29 11:39:37 +01:00
Brown
5e6b158dd9
Do no writing when saving parser cache in tests
2021-01-29 11:39:36 +01:00
Brown
270f9de20a
Fix a few more things
2021-01-29 11:39:36 +01:00
Brown
e9fb3dcad2
Fix various things
2021-01-29 11:39:36 +01:00
Brown
d53a9313a5
Fix stub test
2021-01-29 11:39:36 +01:00
Brown
0b66e8897c
Add check for strpos dictionaries
...
Ref #4070
2021-01-29 11:39:36 +01:00
Brown
db55f608be
Fix #4122 - detect yield in function arguments
2021-01-29 11:39:36 +01:00
Brown
168972e91a
Fix #4178 - always detect missing property types
2021-01-29 11:39:36 +01:00
Bruce Weirdan
b27a233cdd
Support multiple issue types in @psalm-suppress
( #4179 )
...
* Accept multiple issue names in `@psalm-suppress`
Fixes vimeo/psalm#1575
* Accept multiple issue types on statement docblocks as well
* Proper highlighting of individual issues in compound suppressions
2021-01-29 11:39:36 +01:00
Bruce Weirdan
4319132057
Added @psalm-stub-override
for classlikes and methods ( #4177 )
...
Fixes vimeo/psalm#1252
2021-01-29 11:39:34 +01:00
orklah
865b36cd3d
replace return;
by return null;
in every non-void method, add return null;
when mising, add return types, remove redundant phpdoc ( #4176 )
2021-01-29 11:38:58 +01:00
Brown
29481ed1bd
Fix #4127 - improve error message for unused closure var
2021-01-29 11:38:58 +01:00
ygottschalk
c361f86c68
added array-size max constraint to greater check ( #4175 )
...
added a few unit tests
2021-01-29 11:38:58 +01:00
Brown
5d04368d98
Fix #4169 - add appropriate bounds check
2021-01-29 11:38:57 +01:00
orklah
db45ff1ba4
More return types ( #4173 )
...
* add native return types
* redundant phpdoc
2021-01-29 11:38:57 +01:00
Brown
0116284d16
Improve unique issue solution
2021-01-29 11:38:57 +01:00