orklah
|
10f2966dcb
|
return types (#4311)
* return types
* remove willReturn for void methods
|
2020-10-12 15:02:52 -04:00 |
|
Matt Brown
|
e9b520d72d
|
Ignore precondition issues in loop
|
2020-10-07 20:24:50 -04:00 |
|
Matt Brown
|
549b200aa7
|
Remove mixed assignment issue
|
2020-10-04 17:53:26 -04:00 |
|
Matt Brown
|
5bcd1bbb75
|
4.x - add support for get_debug_type function
Ref #4089
|
2020-10-02 19:15:47 -04:00 |
|
Matt Brown
|
74934ffdbb
|
4.x - rename GetClassT to TDependentGetClass
|
2020-10-02 18:47:23 -04:00 |
|
Matt Brown
|
35081c0d21
|
Ensure catch variables are marked as used
|
2020-09-30 13:51:02 -04:00 |
|
Matt Brown
|
14efde286f
|
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
|
2020-09-30 12:28:13 -04:00 |
|
Matt Brown
|
169b2b7023
|
Fix analysis when there’s a break in a loop after a reassignment
|
2020-09-30 00:04:07 -04:00 |
|
Brown
|
19f88a2e31
|
Add improvements from unused variable checks
|
2020-09-28 00:45:02 -04:00 |
|
Brown
|
1afbce82ca
|
Ensure loop marks vars as possibly assigned
|
2020-09-27 17:50:48 -04:00 |
|
Brown
|
4f28b38556
|
Fix unused var in finally false-positive
|
2020-09-25 10:20:22 -04:00 |
|
Brown
|
d52d7ef6aa
|
Add extra loops for more reliable analysis
|
2020-09-25 00:59:58 -04:00 |
|
Brown
|
3593a120f3
|
Add missing = true
|
2020-09-22 01:10:11 -04:00 |
|
Brown
|
275c6bf4e7
|
Propagate has_returned flag
|
2020-09-22 00:43:13 -04:00 |
|
Brown
|
3015aca2df
|
Fix fudging var
|
2020-09-21 16:23:44 -04:00 |
|
Brown
|
b501db6dd2
|
Skip currently-failing undefined variable test
|
2020-09-21 16:01:14 -04:00 |
|
Brown
|
cdb2b5caf6
|
Be a little bit more robust in finally handling
|
2020-09-21 15:37:10 -04:00 |
|
Brown
|
3e0f449163
|
Detect more issues inside finally block
|
2020-09-21 15:16:19 -04:00 |
|
Brown
|
fe94ae0603
|
Make sure to union try-set vars
|
2020-09-21 14:33:34 -04:00 |
|
orklah
|
24a38f21ce
|
Use array destructuring when possible (#4221)
* list usage
* fix inversion
|
2020-09-20 12:55:38 -04:00 |
|
orklah
|
a9a364e363
|
Misc improvements (#4216)
* misc changes
* fix CI
|
2020-09-20 08:55:28 -04:00 |
|
Brown
|
c4450b930c
|
Fix various things
|
2020-09-13 22:39:03 -04:00 |
|
orklah
|
da47588f91
|
replace return; by return null; in every non-void method, add return null; when mising, add return types, remove redundant phpdoc (#4176)
|
2020-09-13 16:39:06 -04:00 |
|
orklah
|
ead107fa9e
|
More return types (#4173)
* add native return types
* redundant phpdoc
|
2020-09-12 11:24:05 -04:00 |
|
Brown
|
eda426a594
|
Improve unique issue solution
|
2020-09-10 22:54:30 -04:00 |
|
orklah
|
8c7423505a
|
add native param types (#4137)
* add native param types
* redundant phpdoc
* add more param types and adds "?" to nullable types
* remove redundant phpdoc
* add more param types and remove redundant phpdoc
* add more param types and remove redundant phpdoc
|
2020-09-06 19:36:47 -04:00 |
|
orklah
|
f66d57f19d
|
add native return types (#4116)
* add native return types
* remove redundant phpdoc
|
2020-09-04 16:26:33 -04:00 |
|
Brown
|
92239add4d
|
Add some backwards-incompatible changes for 4.x
|
2020-08-30 11:44:14 -04:00 |
|
Brown
|
98ce590e9d
|
Remove some redundant calls
|
2020-08-28 12:48:33 -04:00 |
|
Brown
|
efe143a396
|
Fix #4077 - always track closure purity
|
2020-08-28 12:42:55 -04:00 |
|
Brown
|
988e17f11d
|
Make clause fully immutable
|
2020-08-26 15:35:29 -04:00 |
|
Brown
|
8ad1c2eeb1
|
Use immutable data structures for clause calculations
|
2020-08-26 10:41:47 -04:00 |
|
Brown
|
20e004744f
|
Fix #4064 - assume most iterators are impure
|
2020-08-25 18:04:36 -04:00 |
|
Brown
|
2b060b75d3
|
Fix #4052 - foreach over an iterable is impure
|
2020-08-25 11:24:57 -04:00 |
|
Bruce Weirdan
|
5bf7cc6434
|
Resolve typedefs that are used in var docblocks of foreach (#4037)
Fixes vimeo/psalm#4029
|
2020-08-22 08:20:05 -04:00 |
|
Brown
|
12798d1cab
|
Prevent access to possibly unset var
|
2020-08-17 15:25:13 -04:00 |
|
Brown
|
b6d9ee5eb1
|
Fix things
|
2020-08-07 12:16:35 -04:00 |
|
Brown
|
e61765ff9b
|
Fix #3954 - catch ComplicatedExpressionException with added workaround
|
2020-08-07 08:20:35 -04:00 |
|
Brown
|
76bd5b6278
|
Refactor type comparison
|
2020-07-21 19:40:35 -04:00 |
|
Brown
|
3c9028c182
|
Fix #3808 - allow detection of paradoxes in switch condition function calls
|
2020-07-14 10:51:12 -04:00 |
|
Brown
|
bf7bcc0dca
|
Fix #3779 - allow ParadoxicalCondition of default to be suppressed
|
2020-07-08 14:51:20 -04:00 |
|
Brown
|
1b498e6dae
|
Remove unused variable
|
2020-07-06 17:41:07 -04:00 |
|
Brown
|
eb3ce8d368
|
Remove unused code
|
2020-07-06 15:39:52 -04:00 |
|
Brown
|
44d7f51857
|
Generalise init vars inside for loops
Ref #3085
|
2020-07-03 11:13:44 -04:00 |
|
Brown
|
1745f5cafa
|
Fix too-long line
|
2020-07-02 15:32:13 -04:00 |
|
Brown
|
0c582e9993
|
Fix #3685 - improve handling of if conditionals inside do
|
2020-07-02 13:59:59 -04:00 |
|
Brown
|
dd25b81d3a
|
Fix #3670 - taint mixed foreach access
|
2020-06-24 19:16:30 -04:00 |
|
Brown
|
bbada7ba8d
|
Ensure correct vars are used
|
2020-06-15 17:16:12 -04:00 |
|
Brown
|
05cb39814c
|
Improve performance of long switch checks
|
2020-06-15 16:23:19 -04:00 |
|
Brown
|
9ca6c868b7
|
Fix #3563 - add workaround for == true
|
2020-06-12 10:58:44 -04:00 |
|
Matthew Brown
|
c9ee691595
|
Fix suppression
|
2020-06-04 09:55:32 -04:00 |
|
Brown
|
fd74d3284d
|
Add support for PHPParser 4.5.0
|
2020-06-03 14:58:08 -04:00 |
|
Brown
|
ef53ee3a3b
|
Fix crash on aliased exception
Ref #3465
|
2020-05-27 08:09:58 -04:00 |
|
Brown
|
0b2da18f1e
|
Break up StatementsAnalyzer
|
2020-05-19 12:56:30 -04:00 |
|
Brown
|
5ee1487a01
|
Make ExpressionAnalyzer more beautiful
|
2020-05-18 15:13:27 -04:00 |
|
Matthew Brown
|
f6342a40d9
|
Remove unnecesary conditional check for do
Fixes #3378
|
2020-05-16 16:32:36 -04:00 |
|
Brown
|
3554aa4435
|
Fix crash newly introduced
|
2020-05-11 09:34:07 -04:00 |
|
Brown
|
8f2f2617d4
|
Improve refactor
|
2020-05-10 22:45:01 -04:00 |
|
Brown
|
5f4d162dd5
|
Break out type expander into separate class
|
2020-05-10 22:39:18 -04:00 |
|
Matthew Brown
|
4b388a2951
|
Fix ref
|
2020-05-10 11:35:35 -04:00 |
|
Brown
|
55222573ea
|
Mark as possibly-undefined any variable that wasn’t present when the loop began
Fixes #3332
|
2020-05-10 11:17:50 -04:00 |
|
Brown
|
9e6797d297
|
Add protection from ComplicatedExpression
|
2020-04-30 22:23:07 -04:00 |
|
Brown
|
189cd2bdc8
|
Fix key stringg
|
2020-04-27 00:50:07 -04:00 |
|
Brown
|
755ada9114
|
Fix #3234 - infer iterator key types properly
|
2020-04-27 00:41:34 -04:00 |
|
Brown
|
e1c6fcc707
|
Fix #3215 - suppress PossiblyUndefinedMethod in synthetic call
|
2020-04-24 00:11:32 -04:00 |
|
Brown
|
b0455adced
|
Fix #3177 - prevent crash by using inherited templates
|
2020-04-18 11:48:22 -04:00 |
|
Brown
|
e17cfd8dba
|
Fix #3125 - only apply clauses where applicable
|
2020-04-12 21:50:10 -04:00 |
|
Brown
|
d530fce4b3
|
Fall through with PossiblyInvalidIterator issue
|
2020-04-11 11:17:54 -04:00 |
|
Brown
|
556d5625b5
|
Prevent Throwable being intersected with itself
|
2020-04-10 00:10:31 -04:00 |
|
Brown
|
b2e010b431
|
Fix #3102 - identify issues with possibly-mixed output
|
2020-04-08 14:07:09 -04:00 |
|
Brown
|
550ba0a4c9
|
Compare to real outer context, not if one
Fixes #3091
|
2020-04-07 15:13:17 -04:00 |
|
Brown
|
61c979136f
|
Fix #3091 - simplify elseif negated clauses where possible
|
2020-04-07 13:04:24 -04:00 |
|
Brown
|
067104e170
|
Fix #3084 - keep track of upper and lower bounds of inferred template types
|
2020-04-07 00:13:56 -04:00 |
|
Matthew Brown
|
b46e147735
|
Add some limits on switch case assertion calculation
Ref #2728
|
2020-03-30 00:20:00 -04:00 |
|
Matthew Brown
|
86a89b2d27
|
Fix #3034 - expand out while expressions for more accurate variable initialisation
|
2020-03-28 18:22:08 -04:00 |
|
Matthew Brown
|
47c1470e3b
|
Refactor reference checks to use more appropriate properties
|
2020-03-28 16:30:56 -04:00 |
|
Tyson Andre
|
e560858b23
|
Fix grammar nit in "is can never happen" message (#3025)
Should either be "is impossible" or "can never happen"
|
2020-03-27 17:32:49 -04:00 |
|
Brown
|
971ae50bea
|
Do prep work for #3024 - improve handling of absent class references
|
2020-03-26 12:35:27 -04:00 |
|
Matthew Brown
|
c85fa9083d
|
Fix #2915 - prevent "if (true)" and similar
|
2020-03-15 22:23:31 -04:00 |
|
Matthew Brown
|
b6380ae595
|
Fix false-positives around unevaluated code
|
2020-03-15 14:43:05 -04:00 |
|
Matthew Brown
|
6c7f89b0ab
|
Fix #2920 - track unevaluated code after nested returns
|
2020-03-15 14:31:41 -04:00 |
|
Matthew Brown
|
43189b3d55
|
Allow types to be traversed
|
2020-03-14 23:54:51 -04:00 |
|
Matthew Brown
|
54d38e562f
|
Fix #2970 - use correct unreferenced vars when analysing do
|
2020-03-13 11:41:17 -04:00 |
|
Matthew Brown
|
bfb919d26a
|
Break out methods into their own classes
|
2020-03-11 23:04:52 -04:00 |
|
Sergey Melesh
|
a5da866d97
|
Ignore exceptions already caught by previous catch
|
2020-03-08 20:19:56 -05:00 |
|
Matthew Brown
|
d3bfb96431
|
Fix #2808 - improve yield type discernment
|
2020-02-15 10:47:07 -05:00 |
|
Brown
|
f141f7c526
|
Improve --diff checks by including trait-using classes in dependents
|
2020-02-11 16:39:33 -05:00 |
|
Matthew Brown
|
5eb2ebc508
|
Add more type-system protections for bad array args
|
2020-01-29 23:41:17 -05:00 |
|
Brown
|
15808458cc
|
Better understand nesting loops and switches
Fixes #2700
|
2020-01-27 12:17:12 -05:00 |
|
Brown
|
53b0650c6c
|
Fix #2688 - foreach loop evaluation should allow changing loop var
|
2020-01-24 13:55:30 -05:00 |
|
Matthew Brown
|
1c8af2fdc7
|
Fix #2658 - catch exceptions thrown inside catch
|
2020-01-17 12:05:37 -05:00 |
|
Matthew Brown
|
4888ae67a6
|
Fix #2558 - remove wedge clauses when they’re the only thing left
|
2020-01-06 08:56:50 -05:00 |
|
Matthew Brown
|
8ecb8555e2
|
Fix count
|
2020-01-04 13:12:22 -05:00 |
|
Matthew Brown
|
37fb15250c
|
Add check for only simplest conditionals
|
2020-01-04 13:09:55 -05:00 |
|
Matthew Brown
|
8cbc26c2f1
|
Add range checks to identify for loops that always enter
|
2020-01-04 13:05:23 -05:00 |
|
Matthew Brown
|
9fa2db1b6c
|
Move Union::getTypes to Union::getAtomicTypes
|
2020-01-04 12:20:26 -05:00 |
|
Matthew Brown
|
ba6d0df048
|
Fix #2546 properly
|
2020-01-04 11:16:53 -05:00 |
|
Brown
|
0e39759ed6
|
Improve solution to #2546 slightly
|
2020-01-03 10:56:47 -05:00 |
|
Brown
|
ca1e65b29b
|
Handle iterators better
|
2020-01-02 10:41:43 -05:00 |
|
Matthew Brown
|
25e7039f02
|
The current method is used
Fixes #2540
|
2020-01-01 18:33:12 -05:00 |
|