What's Changed
Features
- Add a support for multilevel glob wildcards by @2e3s in #9813
- Mapping closed inheritance to union during assertion by @klimick in #9829
- Use PHPStorm output format by default on JetBrains terminals by @lptn in #9848
- sprintf basic non-empty-string return type provider by @kkmuffme in #9841
- Extend Shepherd payload by information about package versions by @lptn in #9856
- Allow if/false assert for same variable to allow array/list distinction by @kkmuffme in #9853
- readonly does not have write access, therefore is safe as long as the… by @kkmuffme in #9887
- Sprintf improve return param type validation by @kkmuffme in #9877
- feat: cache.gz by @dkarlovi in #9889
- make compressor configurable v2 by @kkmuffme in #9924
- Invalidate cached methods when referenced files are deleted by @tscni in #9931
- Invalidate cached methods when referenced class property types change by @tscni in #9955
Fixes
- glob: allow empty string for pattern by @Hanmac in #9814
- GH-9825 by @jack-worman in #9828
- Fix #9824 const enum self reference by @ygottschalk in #9833
- base64_decode returns false only in strict mode by @kamil-tekiela in #9832
- Dirname return type non empty string by @kkmuffme in #9837
- uniqid return type non-empty-string inconsistent by @kkmuffme in #9842
- PropertyNotSetInConstructor should not report for abstract constructors by @kkmuffme in #9844
- Intersect template types during inheritance check by @klimick in #9865
- Fix generic type params mapping by @klimick in #9866
- Better intersection of template types during inheritance check by @klimick in #9883
- Update the signature of debug_backtrace by @stof in #9868
- Glob return type stub by @ygottschalk in #9878
- Improve the return types for getimagesize and getimagesizefromstring by @robchett in #9875
- Unmark DateInterval::$invert as read-only by @morozov in #9895
- Sprintf additional validations and bugfix by @kkmuffme in #9904
- Fixes #9827 by @ygottschalk in #9903
- set type of LINE to positive int by @robchett in #9921
- Add a stub file for Attributes defined by PHP by @robchett in #9920
- Don't update types of the outer scope when in an elseif conditional by @robchett in #9922
- Update callmap for ext-mongodb 1.16 by @alcaeus in #9933
- Add call map entries for MongoDB functions by @alcaeus in #9934
- fix reconciliation between a list and iterable by @orklah in #9950
non-empty-list
assertion for iterable by @boesing in #9953- fix PHP 7 sprintf too many arguments false positive by @kkmuffme in #9943
Docs
Internal changes
- Introduce and use
IssueData
constants for severity levels by @lptn in #9846 - Shepherd: send a list of issues (instead of array with int keys) by @lptn in #9845
- fix failing mock tests by @kkmuffme in #9880
- Bump mheap/github-action-required-labels from 4 to 5 by @dependabot in #9898
- fix CI warnings for findUnusedCode in psalm 6 by @kkmuffme in #9915
- docblock parser minor performance gain by @kkmuffme in #9916
- improve perfs for switch by not creating reverse assertions against constants by @orklah in #9929
- remove StementsVolatileCache for perf reasons by @orklah in #9930
- put config to true to prevent deprecations for new config files by @orklah in #9857
- Make config warn about missing cache related functions by @ygottschalk in #9935
- Fix/cache fail silent by @ygottschalk in #9932
Typos
New Contributors
Full Changelog: 5.12.0...5.13.0