Brown
353cf2351e
Fix #2259 - if error suppression is use, list destructuring values will be nullable
2019-10-22 10:40:37 -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
Brown
f175050837
Fix #2214 - use better way for marking types as changed
2019-10-07 16:59:05 -04:00
Brown
d225374d6d
Fix #2156 - do better inference after isset
2019-10-01 19:31:08 -04:00
Matthew Brown
325579a0b8
Skip broken test
2019-10-01 09:14:26 -04:00
Matthew Brown
95c7b986c2
Fix formatting
2019-10-01 08:46:37 -04:00
Matthew Brown
738ba81185
Fix #2046 - trigger PossiblyNullArgument when in union with mixed
2019-08-22 23:26:04 -04:00
Matthew Brown
e32b92be6b
Fix #1986 - do better inference after isset on array offsets
2019-08-10 23:22:48 -04:00
Brown
c7f35c263c
Fix #1737 properly
2019-06-04 14:08:49 -04:00
Brown
67c9851b95
Fix Psalm bug, and add test to capture it
2019-06-04 13:43:11 -04:00
Brown
d34c1a94db
Fix #1737 - treat !isset($x, $y) properly
2019-06-04 13:43:09 -04:00
Matthew Brown
c772914910
Add some formatting
2019-03-23 14:27:54 -04:00
Bruce Weirdan
9bdc9f774f
More provider typing
2019-03-02 08:43:19 -05:00
Matthew Brown
0ea22e8d82
If we’re checking $_SESSION for existence return an array
...
Fixes #1335
2019-02-15 15:58:36 -05:00
Matthew Brown
17541b415f
Fix #1191 - allow Psalm to check against different versions of PHP
2019-02-07 12:25:57 -05:00
Matthew Brown
c3a1e77a53
Fix errors in doctrine/dbal
2018-12-20 01:06:43 -05:00
Brown
fb848d62e9
Add checks for if (count($a)) and if (count($a) [operator] [number])
2018-12-19 16:15:19 -05:00
Matthew Brown
ea89a6ba29
Revert "First pass"
...
This reverts commit 9ed047234f
.
2018-12-19 08:45:14 -05:00
Matthew Brown
9ed047234f
First pass
2018-12-19 01:59:14 -05:00
Brown
699d763cc1
Make isset($a[foo]) imply $a is not a string
2018-12-14 18:52:29 -05:00
Matthew Brown
fd0ab47b80
Fix #1118 - detect possible issues with unions of mixed
2018-12-08 13:18:55 -05:00
Matthew Brown
4688b25fd9
Move internal classes to own namespace
2018-11-12 11:20:59 -05:00
Matthew Brown
334c463e08
Fix #977 - improve handling of orred expressions
2018-09-10 00:13:59 -04:00
Matt Brown
caf65ca8a9
Fix #957 - allow assertions on $_GET, $_POST, $_SERVER etc
2018-08-24 16:48:14 -04:00
Matthew Brown
bf79169a1d
Fix #914 - check for correct character when setting calculated field
2018-08-21 00:43:45 -04:00
Matthew Brown
dfc32216b3
Fix #800 - treat array access offsets as mixed for reconciliation purposes
2018-06-08 09:31:21 -04:00
Matt Brown
033bf3db16
Add IssetTest
2018-06-01 11:16:42 -04:00
Matt Brown
2b697a34f8
Fix #786 - improve treatment of array isset checks
2018-05-31 15:07:03 -04:00
Matthew Brown
33a38113f3
Fix isset check
2018-05-30 20:54:03 -04:00
Matt Brown
eb10b15cfc
Improve reliability of elseif resolution
2018-05-30 18:56:44 -04:00
Matthew Brown
b0733254bb
Use individual type objects for each string ( #757 )
...
* Experiment with individual types for each string
* Fix bunch of errors
* Fix a few more issues
* Fix a whole bunch of bugs
* Fix most remaining bugs
* Fix isset warnings
* Fix psalm errors in psalm
* Limit big string size
* Fix falsiness of ints
* Fix issue with type widening, allowing value set in nested if to be altered
* Don’t complain if type is mixed
* Add skipped-for-now test
* Add specific test to address issue
2018-05-18 11:02:50 -04:00
Matthew Brown
c31f787f7c
Convert DNF conditions to CNF
2018-05-06 12:11:40 -04:00
Matthew Brown
21261172a8
Fix #713 - support offsets of known array types
2018-05-05 17:30:18 -04:00
Matt Brown
6426dbbf0e
Propagate array key updates after assertions to base array
2018-04-11 14:19:42 -04:00
Matt Brown
60c6bb4021
Fix #650 - be more judicious about inserting mixed into places
2018-04-06 18:28:22 -04:00
Matt Brown
c932ed7764
Fix #651 - allow Psalm to understand assertions on properties of array objects
2018-04-06 16:23:10 -04:00
Matt Brown
b54fb06552
Handle variable paths in a less naive fashion
...
Fixes #564
2018-03-08 15:57:46 -05:00
Matthew Brown
88ca7d2fa7
Fix #515 - make Psalm aware of variable array keys
2018-02-17 11:24:08 -05:00
Matt Brown
5200a25efa
Fix #477 - make sure that isset applies to property object
2018-01-29 15:47:25 -05:00
Matt Brown
2120d258a4
Fix formatting of return type adder
2018-01-11 15:50:58 -05:00
Matt Brown
27e47365e3
Fix #422 - be better about checking isset call variables
2018-01-09 19:33:39 -05:00
Matthew Brown
17edb2bbe6
Add better understanding of arrays with keyed integer offsets ( #400 )
...
* Add tests for keyed integer assignemnt
* First pass to get keyed integer assignment working
* Fix array assignment to object-like with different key type
* Improve treatment of objectlikes for callable and iterable comparisons
* Fix array assignment to strings and addition
* Convert expression to CNF
* Do better at merging property types
* Fix array_rand key type
2017-12-18 18:47:17 -05:00
Matthew Brown
e55fe2f158
Don’t complain about possibly undefined vars when calling unset
...
Fixes #139
2017-12-13 19:46:58 -05:00
Matt Brown
33f003f427
Don’t complain about repeat isset calls on array keys
...
Fixes #347
2017-11-28 16:52:52 -05:00
Matthew Brown
f27bd50abe
Add RedundantCondition issue, replacing FailedTypeResolution ( #344 )
...
* Group changes
* Don’t worry about vars defined before exiting
* Fix issues with vars defined in conditionals
* Add failing test
* Only add failed reconciliation flag if nothing could be salvaged
* Avoid notice when removing clauses
* Improve handling of loops
* Fix evaluation of binary op expressions
* Remove unset vars from outer context after loop
* Ignore RedundantCondition in some more configs
2017-11-28 00:46:41 -05:00
Matt Brown
ac70ea31b2
Change test assertion keying
2017-06-29 10:22:49 -04:00
Matthew Brown
d6909193ea
Add additional formatting changes
2017-05-26 20:05:57 -04:00
Jon Ursenbach
11bc153deb
Rewriting and streamlining every unit test with data providers. ( #147 )
...
* Rewriting and streamlining every unit test with data providers.
All unit tests have been rewritten into PHPUnit data providers
to reduce the amount of unnecessary code-reuse through out the
test suite.
2017-04-24 23:45:02 -04:00
Matthew Brown
048d7f0142
Fix #110 - failure to eliminate false from array|false on isset
2017-03-05 23:47:53 -05:00
Matthew Brown
9137727993
Fix #99 - treat null coalesce more respectfully
2017-02-17 20:50:47 -05:00