394e38599d
Strict types everywhere
2023-10-19 13:12:06 +02:00
Jack Worman
1c19260cdd
Require trailing commas
2022-12-18 13:20:31 -06:00
2f5d0a4a9f
Fix #8923
2022-12-18 18:19:22 +01:00
Jack Worman
643542346b
Add codesniffer rules and expand php-cs-fixer to bin and test
2022-12-14 13:29:09 -06:00
orklah
2490230f1f
fix missing break handling in loop
2022-12-04 13:57:59 +01:00
1986c8b4a8
Add support for strict arrays, fix type alias intersection, fix array_is_list assertion on non-lists ( #8395 )
...
* Immutable CodeLocation
* Remove excess clones
* Remove external clones
* Remove leftover clones
* Fix final clone issue
* Immutable storages
* Refactoring
* Fixes
* Fixes
* Fix
* Fix
* Fixes
* Simplify
* Fixes
* Fix
* Fixes
* Update
* Fix
* Cache global types
* Fix
* Update
* Update
* Fixes
* Fixes
* Refactor
* Fixes
* Fix
* Fix
* More caching
* Fix
* Fix
* Update
* Update
* Fix
* Fixes
* Update
* Refactor
* Update
* Fixes
* Break one more test
* Fix
* FIx
* Fix
* Fix
* Fix
* Fix
* Improve performance and readability
* Equivalent logic
* Fixes
* Revert
* Revert "Revert"
This reverts commit f9175100c8452c80559234200663fd4c4f4dd889.
* Fix
* Fix reference bug
* Make default TypeVisitor immutable
* Bugfix
* Remove clones
* Partial refactoring
* Refactoring
* Fixes
* Fix
* Fixes
* Fixes
* cs-fix
* Fix final bugs
* Add test
* Misc fixes
* Update
* Fixes
* Experiment with removing different property
* revert "Experiment with removing different property"
This reverts commit ac1156e077fc4ea633530d51096d27b6e88bfdf9.
* Uniform naming
* Uniform naming
* Hack hotfix
* Clean up $_FILES ref #8621
* Undo hack, try fixing properly
* Helper method
* Remove redundant call
* Partially fix bugs
* Cleanup
* Change defaults
* Fix bug
* Fix (?, hope this doesn't break anything else)
* cs-fix
* Review fixes
* Bugfix
* Bugfix
* Improve logic
* Add support for list{} and callable-list{} types, properly implement array_is_list assertions (fixes #8389 )
* Default to sealed arrays
* Fix array_merge bug
* Fixes
* Fix
* Sealed type checks
* Properly infer properties-of and get_object_vars on final classes
* Fix array_map zipping
* Fix tests
* Fixes
* Fixes
* Fix more stuff
* Recursively resolve type aliases
* Fix typo
* Fixes
* Fix array_is_list assertion on keyed array
* Add BC docs
* Fixes
* fix
* Update
* Update
* Update
* Update
* Seal arrays with count assertions
* Fix #8528
* Fix
* Update
* Improve sealed array foreach logic
* get_object_vars on template properties
* Fix sealed array assertion reconciler logic
* Improved reconciler
* Add tests
* Single source of truth for test types
* Fix tests
* Fixup tests
* Fixup tests
* Fixup tests
* Update
* Fix tests
* Fix tests
* Final fixes
* Fixes
* Use list syntax only when needed
* Fix tests
* Cs-fix
* Update docs
* Update docs
* Update docs
* Update docs
* Update docs
* Document missing types
* Update docs
* Improve class-string-map docs
* Update
* Update
* I love working on psalm :)
* Keep arrays unsealed by default
* Fixup tests
* Fix syntax mistake
* cs-fix
* Fix typo
* Re-import missing types
* Keep strict types only in return types
* argc/argv fixes
* argc/argv fixes
* Fix test
* Comment-out valinor code, pinging @romm pls merge https://github.com/CuyZ/Valinor/pull/246 so we can add valinor to the psalm docs :)
2022-11-05 22:34:42 +01:00
Matthew Brown
2eca28c912
Remove more unused code from LoopAnalyzer
2022-02-09 16:37:15 -05:00
Matthew Brown
13824d5a33
Fix awkward workaround for loop assignment map
2022-02-08 10:59:29 -05:00
Matthew Brown
b49682a485
Simplify issue suppression in tests
2022-01-13 14:38:17 -05:00
Matthew Brown
f439d6550b
Ensure that all entries in test arrays have explicit keys ( #7386 )
...
* Transformation that updates assertions
* Simplify transformation
* Ensure that all tests have keys
* Fix a few remaining keys
2022-01-13 13:49:37 -05:00
rarila
97e6511fab
Set number of lines before and after namespace.
2021-12-15 04:58:32 +01:00
rarila
39402c233d
Return type hints ( #7065 )
...
Co-authored-by: ralila <>
2021-12-05 19:51:26 +02:00
ralila
8fb2e0f885
Handle some partials
2021-12-04 21:55:53 +01:00
ralila
245920e53c
Import instead of using fqn
2021-12-03 20:11:20 +01:00
orklah
5a2df475ca
changes after review
2021-09-19 19:30:03 +02:00
orklah
7d6ede61fd
fix test
2021-09-19 19:30:00 +02:00
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
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
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
0c477da310
Fix test failures
2020-11-25 20:05:09 -05:00
Matt Brown
e9b520d72d
Ignore precondition issues in loop
2020-10-07 20:24:50 -04:00
Brown
19f88a2e31
Add improvements from unused variable checks
2020-09-28 00:45:02 -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
134955a5f4
Fix #4011 - prevent mixed assignment in loop
2020-08-18 08:51:09 -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
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
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
Matthew Brown
86a89b2d27
Fix #3034 - expand out while expressions for more accurate variable initialisation
2020-03-28 18:22:08 -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
9d62971006
Fix possible issue negating falsy assertion
2019-08-18 17:51:43 -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
9d8c2792e2
Add array-key type and improve general type handling
...
Fixes #1144
2019-01-05 00:15:53 -05:00
Matthew Brown
4688b25fd9
Move internal classes to own namespace
2018-11-12 11:20:59 -05:00
Matthew Brown
9f2fe748e8
Improve handling of vars set in always-entered for/foreach/while loops
2018-11-10 16:10:59 -05:00
Matthew Brown
03ea94e087
Improve handling of do blocks
2018-11-10 14:06:31 -05:00
Matthew Brown
461a9667b5
Split up LoopScopeTest into block-specific tests
2018-11-09 19:54:10 -05:00