orklah
de27693015
change test to show while loop with truthy value is still inferred
2021-09-04 14:10:12 +02:00
orklah
e99c1951ae
Make Psalm understand infinite while loop in control actions
2021-09-02 22:28:01 +02:00
Bruce Weirdan
6abce3525a
Enforce use
sort ( #5900 )
2021-06-07 22:55:21 -04:00
Matt Brown
7354ec9903
Fix #5298 - improve handling of method that may write properties
2021-05-23 16:22:52 -04:00
Matt Brown
9635ca620c
Correctly interpret continue 2 in nested loops
2021-05-17 08:26:38 -05:00
Matthew Brown
2ebf97b4cb
Fix #4910 - don’t allow array_merge to create massive keyed arrays
2021-05-13 16:27:05 -04:00
Matthew Brown
4873f53f69
Fix issue when two continue/break statements write same variable
2021-05-13 09:39:25 -04:00
AndrolGenhald
d4590711d6
Fix object-like array keys when combining string and automatic keys ( fixes #5427 ). ( #5428 )
...
* Fix object-like array keys (fixes #5427 ).
* Fix incorrect return types for tests.
* Fix false positive list with literal int key.
2021-03-19 21:44:44 -04:00
Matt Brown
d10a06837d
Fix #5001 - update variables after context after type change from empty
...
Empty is the invalid state, and some old logic here was causing a bug
2021-01-13 11:35:52 -05:00
Matt Brown
951afcf4af
Fix #4982 - ensure destructuring assignments are seen inside a loop
2021-01-11 12:46:02 -05:00
Matt Brown
0c477da310
Fix test failures
2020-11-25 20:05:09 -05:00
Matt Brown
024d93b7fd
Fix #4467 - variables are only the same if they were set in the same location
2020-11-01 11:26:42 -05:00
Matt Brown
e9b520d72d
Ignore precondition issues in loop
2020-10-07 20:24:50 -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
orklah
ead107fa9e
More return types ( #4173 )
...
* add native return types
* redundant phpdoc
2020-09-12 11:24:05 -04:00
Brown
92239add4d
Add some backwards-incompatible changes for 4.x
2020-08-30 11:44:14 -04:00
Brown
3ca4a576e7
Fix treatment of closure params in array_map
2020-08-29 11:10:09 -04:00
Brown
134955a5f4
Fix #4011 - prevent mixed assignment in loop
2020-08-18 08:51:09 -04:00
Brown
de6b354fa0
Fix #4005 - prevent crash when assignment var assertion no longer valid
2020-08-17 15:47:39 -04:00
Matthew Brown
9dfdcbef31
Fix #3928 - preserve list-ness when assigning with no offset
2020-08-03 12:30:58 -04:00
Brown
57cd21346c
Fix #3914 - treat $i++ like $i = $i + 1
2020-07-31 11:26:54 -04:00
Brown
44d7f51857
Generalise init vars inside for loops
...
Ref #3085
2020-07-03 11:13:44 -04:00
Brown
0c582e9993
Fix #3685 - improve handling of if conditionals inside do
2020-07-02 13:59:59 -04:00
Matthew Brown
f6342a40d9
Remove unnecesary conditional check for do
...
Fixes #3378
2020-05-16 16:32:36 -04:00
Brown
58e1d8e68e
Fix test with unset in loop
2020-05-11 09:39:25 -04:00
Brown
3554aa4435
Fix crash newly introduced
2020-05-11 09:34:07 -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
755ada9114
Fix #3234 - infer iterator key types properly
2020-04-27 00:41:34 -04:00
Brown
e17cfd8dba
Fix #3125 - only apply clauses where applicable
2020-04-12 21:50:10 -04:00
Brown
9d2957d339
Fix a few more edge-cases
2020-04-12 01:26:11 -04:00
Brown
d868710b2b
Fix handling of built arrays
2020-04-08 16:11:11 -04:00
Matthew Brown
86a89b2d27
Fix #3034 - expand out while expressions for more accurate variable initialisation
2020-03-28 18:22:08 -04:00
Brown
9f077f5aec
Fix formatting
2020-01-24 14:08:01 -05:00
Brown
53b0650c6c
Fix #2688 - foreach loop evaluation should allow changing loop var
2020-01-24 13:55:30 -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
227ea2042a
Fix foreach test
2019-11-29 11:29:22 -05:00
Jáchym Toušek
f2c82fa212
Add support for Iterator<X> type ( #2285 )
...
* Add support for Iterator<X> type
* Fix tests
2019-10-30 18:00:27 +00:00
Matthew Brown
233977a764
Fix undefined array offset when too few iterator params supplied
2019-10-21 07:13:33 -04:00
lhchavez
216f991b0c
Normalize stringified type names ( #2239 )
...
This change makes stringified types more normalized. Concretely it sorts
all union types, reconciled types, and sorts the keys within object-like
types.
2019-10-17 01:14:33 -04:00
Matthew Brown
0f7925e769
Fix #2183 - evaluate return after do with break inside
2019-09-29 16:12:52 -04:00
Brown
80d9b5dc29
Add support for iterating over SimpleXMLElement
2019-08-23 14:15:20 -04:00
Brown
95c61db513
Add a PossibleRawObjectIteration issue
2019-08-20 12:06:02 -04:00
Matthew Brown
9d62971006
Fix possible issue negating falsy assertion
2019-08-18 17:51:43 -04:00
Matthew Brown
da42be175f
Apply PHPCS fixes
...
Fixes #1880
2019-07-05 16:27:53 -04:00
LeSuisse
f29826b958
Fully qualify constants and function calls ( #1849 )
...
This should give a small performance boost.
Part of #1837 .
The change is enforced via phpcs and can be autofixed
with phpcbf.
2019-06-26 16:52:29 -04:00
Brown
e85794038f
Fix #1704 - improve type coercion complaints
2019-05-29 14:22:15 -04:00
Matthew Brown
a6f3177292
Skip failing test
2019-05-29 08:09:09 -04:00
Matthew Brown
419d1da98d
Fix issue where iterators weren’t processed recursively
2019-05-08 09:04:52 -04:00