vimeo/psalm (vimeo/psalm)
### [`v5.13.0`](https://togithub.com/vimeo/psalm/releases/tag/5.13.0)
[Compare Source](https://togithub.com/vimeo/psalm/compare/5.12.0...5.13.0)
#### What's Changed
##### Features
- Add a support for multilevel glob wildcards by [@2e3s](https://togithub.com/2e3s) in [https://github.com/vimeo/psalm/pull/9813](https://togithub.com/vimeo/psalm/pull/9813)
- Mapping closed inheritance to union during assertion by [@klimick](https://togithub.com/klimick) in [https://github.com/vimeo/psalm/pull/9829](https://togithub.com/vimeo/psalm/pull/9829)
- Use PHPStorm output format by default on JetBrains terminals by [@lptn](https://togithub.com/lptn) in [https://github.com/vimeo/psalm/pull/9848](https://togithub.com/vimeo/psalm/pull/9848)
- sprintf basic non-empty-string return type provider by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9841](https://togithub.com/vimeo/psalm/pull/9841)
- Extend Shepherd payload by information about package versions by [@lptn](https://togithub.com/lptn) in [https://github.com/vimeo/psalm/pull/9856](https://togithub.com/vimeo/psalm/pull/9856)
- Allow if/false assert for same variable to allow array/list distinction by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9853](https://togithub.com/vimeo/psalm/pull/9853)
- readonly does not have write access, therefore is safe as long as the⦠by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9887](https://togithub.com/vimeo/psalm/pull/9887)
- Sprintf improve return param type validation by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9877](https://togithub.com/vimeo/psalm/pull/9877)
- feat: cache.gz by [@dkarlovi](https://togithub.com/dkarlovi) in [https://github.com/vimeo/psalm/pull/9889](https://togithub.com/vimeo/psalm/pull/9889)
- make compressor configurable v2 by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9924](https://togithub.com/vimeo/psalm/pull/9924)
- Invalidate cached methods when referenced files are deleted by [@tscni](https://togithub.com/tscni) in [https://github.com/vimeo/psalm/pull/9931](https://togithub.com/vimeo/psalm/pull/9931)
- Invalidate cached methods when referenced class property types change by [@tscni](https://togithub.com/tscni) in [https://github.com/vimeo/psalm/pull/9955](https://togithub.com/vimeo/psalm/pull/9955)
##### Fixes
- glob: allow empty string for pattern by [@Hanmac](https://togithub.com/Hanmac) in [https://github.com/vimeo/psalm/pull/9814](https://togithub.com/vimeo/psalm/pull/9814)
- [GH-9825](https://togithub.com/vimeo/psalm/issues/9825) by [@jack-worman](https://togithub.com/jack-worman) in [https://github.com/vimeo/psalm/pull/9828](https://togithub.com/vimeo/psalm/pull/9828)
- Fix [#9824](https://togithub.com/vimeo/psalm/issues/9824) const enum self reference by [@ygottschalk](https://togithub.com/ygottschalk) in [https://github.com/vimeo/psalm/pull/9833](https://togithub.com/vimeo/psalm/pull/9833)
- base64\_decode returns false only in strict mode by [@kamil-tekiela](https://togithub.com/kamil-tekiela) in [https://github.com/vimeo/psalm/pull/9832](https://togithub.com/vimeo/psalm/pull/9832)
- Dirname return type non empty string by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9837](https://togithub.com/vimeo/psalm/pull/9837)
- uniqid return type non-empty-string inconsistent by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9842](https://togithub.com/vimeo/psalm/pull/9842)
- PropertyNotSetInConstructor should not report for abstract constructors by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9844](https://togithub.com/vimeo/psalm/pull/9844)
- Intersect template types during inheritance check by [@klimick](https://togithub.com/klimick) in [https://github.com/vimeo/psalm/pull/9865](https://togithub.com/vimeo/psalm/pull/9865)
- Fix generic type params mapping by [@klimick](https://togithub.com/klimick) in [https://github.com/vimeo/psalm/pull/9866](https://togithub.com/vimeo/psalm/pull/9866)
- Better intersection of template types during inheritance check by [@klimick](https://togithub.com/klimick) in [https://github.com/vimeo/psalm/pull/9883](https://togithub.com/vimeo/psalm/pull/9883)
- Update the signature of debug_backtrace by [@stof](https://togithub.com/stof) in [https://github.com/vimeo/psalm/pull/9868](https://togithub.com/vimeo/psalm/pull/9868)
- Glob return type stub by [@ygottschalk](https://togithub.com/ygottschalk) in [https://github.com/vimeo/psalm/pull/9878](https://togithub.com/vimeo/psalm/pull/9878)
- Improve the return types for getimagesize and getimagesizefromstring by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/9875](https://togithub.com/vimeo/psalm/pull/9875)
- Unmark DateInterval::$invert as read-only by [@morozov](https://togithub.com/morozov) in [https://github.com/vimeo/psalm/pull/9895](https://togithub.com/vimeo/psalm/pull/9895)
- Sprintf additional validations and bugfix by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9904](https://togithub.com/vimeo/psalm/pull/9904)
- Fixes [#9827](https://togithub.com/vimeo/psalm/issues/9827) by [@ygottschalk](https://togithub.com/ygottschalk) in [https://github.com/vimeo/psalm/pull/9903](https://togithub.com/vimeo/psalm/pull/9903)
- set type of **LINE** to positive int by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/9921](https://togithub.com/vimeo/psalm/pull/9921)
- Add a stub file for Attributes defined by PHP by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/9920](https://togithub.com/vimeo/psalm/pull/9920)
- Don't update types of the outer scope when in an elseif conditional by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/9922](https://togithub.com/vimeo/psalm/pull/9922)
- Update callmap for ext-mongodb 1.16 by [@alcaeus](https://togithub.com/alcaeus) in [https://github.com/vimeo/psalm/pull/9933](https://togithub.com/vimeo/psalm/pull/9933)
- Add call map entries for MongoDB functions by [@alcaeus](https://togithub.com/alcaeus) in [https://github.com/vimeo/psalm/pull/9934](https://togithub.com/vimeo/psalm/pull/9934)
- fix reconciliation between a list and iterable by [@orklah](https://togithub.com/orklah) in [https://github.com/vimeo/psalm/pull/9950](https://togithub.com/vimeo/psalm/pull/9950)
- `non-empty-list` assertion for iterable by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/9953](https://togithub.com/vimeo/psalm/pull/9953)
- fix PHP 7 sprintf too many arguments false positive by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9943](https://togithub.com/vimeo/psalm/pull/9943)
##### Docs
- Document classAndDescendants configuration tag by [@janopae](https://togithub.com/janopae) in [https://github.com/vimeo/psalm/pull/9867](https://togithub.com/vimeo/psalm/pull/9867)
##### Internal changes
- Introduce and use `IssueData` constants for severity levels by [@lptn](https://togithub.com/lptn) in [https://github.com/vimeo/psalm/pull/9846](https://togithub.com/vimeo/psalm/pull/9846)
- Shepherd: send a list of issues (instead of array with int keys) by [@lptn](https://togithub.com/lptn) in [https://github.com/vimeo/psalm/pull/9845](https://togithub.com/vimeo/psalm/pull/9845)
- fix failing mock tests by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9880](https://togithub.com/vimeo/psalm/pull/9880)
- Bump mheap/github-action-required-labels from 4 to 5 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/vimeo/psalm/pull/9898](https://togithub.com/vimeo/psalm/pull/9898)
- fix CI warnings for findUnusedCode in psalm 6 by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9915](https://togithub.com/vimeo/psalm/pull/9915)
- docblock parser minor performance gain by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9916](https://togithub.com/vimeo/psalm/pull/9916)
- improve perfs for switch by not creating reverse assertions against constants by [@orklah](https://togithub.com/orklah) in [https://github.com/vimeo/psalm/pull/9929](https://togithub.com/vimeo/psalm/pull/9929)
- remove StementsVolatileCache for perf reasons by [@orklah](https://togithub.com/orklah) in [https://github.com/vimeo/psalm/pull/9930](https://togithub.com/vimeo/psalm/pull/9930)
- put config to true to prevent deprecations for new config files by [@orklah](https://togithub.com/orklah) in [https://github.com/vimeo/psalm/pull/9857](https://togithub.com/vimeo/psalm/pull/9857)
- Make config warn about missing cache related functions by [@ygottschalk](https://togithub.com/ygottschalk) in [https://github.com/vimeo/psalm/pull/9935](https://togithub.com/vimeo/psalm/pull/9935)
- Fix/cache fail silent by [@ygottschalk](https://togithub.com/ygottschalk) in [https://github.com/vimeo/psalm/pull/9932](https://togithub.com/vimeo/psalm/pull/9932)
##### Typos
- Fixed typo in ConstantTest by [@staabm](https://togithub.com/staabm) in [https://github.com/vimeo/psalm/pull/9835](https://togithub.com/vimeo/psalm/pull/9835)
#### New Contributors
- [@Hanmac](https://togithub.com/Hanmac) made their first contribution in [https://github.com/vimeo/psalm/pull/9814](https://togithub.com/vimeo/psalm/pull/9814)
- [@stof](https://togithub.com/stof) made their first contribution in [https://github.com/vimeo/psalm/pull/9868](https://togithub.com/vimeo/psalm/pull/9868)
**Full Changelog**: https://github.com/vimeo/psalm/compare/5.12.0...5.13.0
Configuration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Enabled.
β» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR contains the following updates:
5.12.0
->5.13.0
Release Notes
vimeo/psalm (vimeo/psalm)
### [`v5.13.0`](https://togithub.com/vimeo/psalm/releases/tag/5.13.0) [Compare Source](https://togithub.com/vimeo/psalm/compare/5.12.0...5.13.0) #### What's Changed ##### Features - Add a support for multilevel glob wildcards by [@2e3s](https://togithub.com/2e3s) in [https://github.com/vimeo/psalm/pull/9813](https://togithub.com/vimeo/psalm/pull/9813) - Mapping closed inheritance to union during assertion by [@klimick](https://togithub.com/klimick) in [https://github.com/vimeo/psalm/pull/9829](https://togithub.com/vimeo/psalm/pull/9829) - Use PHPStorm output format by default on JetBrains terminals by [@lptn](https://togithub.com/lptn) in [https://github.com/vimeo/psalm/pull/9848](https://togithub.com/vimeo/psalm/pull/9848) - sprintf basic non-empty-string return type provider by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9841](https://togithub.com/vimeo/psalm/pull/9841) - Extend Shepherd payload by information about package versions by [@lptn](https://togithub.com/lptn) in [https://github.com/vimeo/psalm/pull/9856](https://togithub.com/vimeo/psalm/pull/9856) - Allow if/false assert for same variable to allow array/list distinction by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9853](https://togithub.com/vimeo/psalm/pull/9853) - readonly does not have write access, therefore is safe as long as the⦠by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9887](https://togithub.com/vimeo/psalm/pull/9887) - Sprintf improve return param type validation by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9877](https://togithub.com/vimeo/psalm/pull/9877) - feat: cache.gz by [@dkarlovi](https://togithub.com/dkarlovi) in [https://github.com/vimeo/psalm/pull/9889](https://togithub.com/vimeo/psalm/pull/9889) - make compressor configurable v2 by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9924](https://togithub.com/vimeo/psalm/pull/9924) - Invalidate cached methods when referenced files are deleted by [@tscni](https://togithub.com/tscni) in [https://github.com/vimeo/psalm/pull/9931](https://togithub.com/vimeo/psalm/pull/9931) - Invalidate cached methods when referenced class property types change by [@tscni](https://togithub.com/tscni) in [https://github.com/vimeo/psalm/pull/9955](https://togithub.com/vimeo/psalm/pull/9955) ##### Fixes - glob: allow empty string for pattern by [@Hanmac](https://togithub.com/Hanmac) in [https://github.com/vimeo/psalm/pull/9814](https://togithub.com/vimeo/psalm/pull/9814) - [GH-9825](https://togithub.com/vimeo/psalm/issues/9825) by [@jack-worman](https://togithub.com/jack-worman) in [https://github.com/vimeo/psalm/pull/9828](https://togithub.com/vimeo/psalm/pull/9828) - Fix [#9824](https://togithub.com/vimeo/psalm/issues/9824) const enum self reference by [@ygottschalk](https://togithub.com/ygottschalk) in [https://github.com/vimeo/psalm/pull/9833](https://togithub.com/vimeo/psalm/pull/9833) - base64\_decode returns false only in strict mode by [@kamil-tekiela](https://togithub.com/kamil-tekiela) in [https://github.com/vimeo/psalm/pull/9832](https://togithub.com/vimeo/psalm/pull/9832) - Dirname return type non empty string by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9837](https://togithub.com/vimeo/psalm/pull/9837) - uniqid return type non-empty-string inconsistent by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9842](https://togithub.com/vimeo/psalm/pull/9842) - PropertyNotSetInConstructor should not report for abstract constructors by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9844](https://togithub.com/vimeo/psalm/pull/9844) - Intersect template types during inheritance check by [@klimick](https://togithub.com/klimick) in [https://github.com/vimeo/psalm/pull/9865](https://togithub.com/vimeo/psalm/pull/9865) - Fix generic type params mapping by [@klimick](https://togithub.com/klimick) in [https://github.com/vimeo/psalm/pull/9866](https://togithub.com/vimeo/psalm/pull/9866) - Better intersection of template types during inheritance check by [@klimick](https://togithub.com/klimick) in [https://github.com/vimeo/psalm/pull/9883](https://togithub.com/vimeo/psalm/pull/9883) - Update the signature of debug_backtrace by [@stof](https://togithub.com/stof) in [https://github.com/vimeo/psalm/pull/9868](https://togithub.com/vimeo/psalm/pull/9868) - Glob return type stub by [@ygottschalk](https://togithub.com/ygottschalk) in [https://github.com/vimeo/psalm/pull/9878](https://togithub.com/vimeo/psalm/pull/9878) - Improve the return types for getimagesize and getimagesizefromstring by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/9875](https://togithub.com/vimeo/psalm/pull/9875) - Unmark DateInterval::$invert as read-only by [@morozov](https://togithub.com/morozov) in [https://github.com/vimeo/psalm/pull/9895](https://togithub.com/vimeo/psalm/pull/9895) - Sprintf additional validations and bugfix by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9904](https://togithub.com/vimeo/psalm/pull/9904) - Fixes [#9827](https://togithub.com/vimeo/psalm/issues/9827) by [@ygottschalk](https://togithub.com/ygottschalk) in [https://github.com/vimeo/psalm/pull/9903](https://togithub.com/vimeo/psalm/pull/9903) - set type of **LINE** to positive int by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/9921](https://togithub.com/vimeo/psalm/pull/9921) - Add a stub file for Attributes defined by PHP by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/9920](https://togithub.com/vimeo/psalm/pull/9920) - Don't update types of the outer scope when in an elseif conditional by [@robchett](https://togithub.com/robchett) in [https://github.com/vimeo/psalm/pull/9922](https://togithub.com/vimeo/psalm/pull/9922) - Update callmap for ext-mongodb 1.16 by [@alcaeus](https://togithub.com/alcaeus) in [https://github.com/vimeo/psalm/pull/9933](https://togithub.com/vimeo/psalm/pull/9933) - Add call map entries for MongoDB functions by [@alcaeus](https://togithub.com/alcaeus) in [https://github.com/vimeo/psalm/pull/9934](https://togithub.com/vimeo/psalm/pull/9934) - fix reconciliation between a list and iterable by [@orklah](https://togithub.com/orklah) in [https://github.com/vimeo/psalm/pull/9950](https://togithub.com/vimeo/psalm/pull/9950) - `non-empty-list` assertion for iterable by [@boesing](https://togithub.com/boesing) in [https://github.com/vimeo/psalm/pull/9953](https://togithub.com/vimeo/psalm/pull/9953) - fix PHP 7 sprintf too many arguments false positive by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9943](https://togithub.com/vimeo/psalm/pull/9943) ##### Docs - Document classAndDescendants configuration tag by [@janopae](https://togithub.com/janopae) in [https://github.com/vimeo/psalm/pull/9867](https://togithub.com/vimeo/psalm/pull/9867) ##### Internal changes - Introduce and use `IssueData` constants for severity levels by [@lptn](https://togithub.com/lptn) in [https://github.com/vimeo/psalm/pull/9846](https://togithub.com/vimeo/psalm/pull/9846) - Shepherd: send a list of issues (instead of array with int keys) by [@lptn](https://togithub.com/lptn) in [https://github.com/vimeo/psalm/pull/9845](https://togithub.com/vimeo/psalm/pull/9845) - fix failing mock tests by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9880](https://togithub.com/vimeo/psalm/pull/9880) - Bump mheap/github-action-required-labels from 4 to 5 by [@dependabot](https://togithub.com/dependabot) in [https://github.com/vimeo/psalm/pull/9898](https://togithub.com/vimeo/psalm/pull/9898) - fix CI warnings for findUnusedCode in psalm 6 by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9915](https://togithub.com/vimeo/psalm/pull/9915) - docblock parser minor performance gain by [@kkmuffme](https://togithub.com/kkmuffme) in [https://github.com/vimeo/psalm/pull/9916](https://togithub.com/vimeo/psalm/pull/9916) - improve perfs for switch by not creating reverse assertions against constants by [@orklah](https://togithub.com/orklah) in [https://github.com/vimeo/psalm/pull/9929](https://togithub.com/vimeo/psalm/pull/9929) - remove StementsVolatileCache for perf reasons by [@orklah](https://togithub.com/orklah) in [https://github.com/vimeo/psalm/pull/9930](https://togithub.com/vimeo/psalm/pull/9930) - put config to true to prevent deprecations for new config files by [@orklah](https://togithub.com/orklah) in [https://github.com/vimeo/psalm/pull/9857](https://togithub.com/vimeo/psalm/pull/9857) - Make config warn about missing cache related functions by [@ygottschalk](https://togithub.com/ygottschalk) in [https://github.com/vimeo/psalm/pull/9935](https://togithub.com/vimeo/psalm/pull/9935) - Fix/cache fail silent by [@ygottschalk](https://togithub.com/ygottschalk) in [https://github.com/vimeo/psalm/pull/9932](https://togithub.com/vimeo/psalm/pull/9932) ##### Typos - Fixed typo in ConstantTest by [@staabm](https://togithub.com/staabm) in [https://github.com/vimeo/psalm/pull/9835](https://togithub.com/vimeo/psalm/pull/9835) #### New Contributors - [@Hanmac](https://togithub.com/Hanmac) made their first contribution in [https://github.com/vimeo/psalm/pull/9814](https://togithub.com/vimeo/psalm/pull/9814) - [@stof](https://togithub.com/stof) made their first contribution in [https://github.com/vimeo/psalm/pull/9868](https://togithub.com/vimeo/psalm/pull/9868) **Full Changelog**: https://github.com/vimeo/psalm/compare/5.12.0...5.13.0Configuration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Enabled.
β» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
Read more about the use of Renovate Bot within
ocramius/*
projects.