What's Changed
Fixes
- Report each property write in a restricted purity context once by @danog in #13067
- [7.x] Cut peak memory 22 to 25% (4.6 to 3.6 GB on Laravel) by stopping workers before unpacking their results by @jarstelfox in #12573
- Fix: code used only from
__destructand other magic methods is reported unused by @alies-dev in #13069 - Don't report strtolower() of a Stringable object as redundant by @jirkace in #12598
- Fix:
__callStaticand the code it uses reported unused by @alies-dev in #13073 - Don't crash on a constant dividing by a zero constant of another class (#12066) by @jirkace in #12761
- fix(readonly): promoted properties of a readonly class are readonly by @jirkace in #12909
- fix(var-docblock): a @var line without a name does not take the name of the previous line by @jirkace in #12670
- fix(messages): say that the (unset) cast was removed in PHP 8.0 by @jirkace in #12824
- fix(messages): explain impossible negated checks and calls without effect by @jirkace in #13006
- fix(types): array intersected with iterable is an array of the iterable's types by @jirkace in #13004
- fix(messages): do not tell to install a polyfill that may not ship the symbol by @jirkace in #12813
Docs
Internal changes
- Add regression tests for 92 issues already fixed in Psalm 7 by @alies-dev in #13063
- Let a Psalm process of the end-to-end tests run for 300 seconds by @jirkace in #12613
- Push the files composer build regenerates instead of failing by @danog in #13138
New Contributors
Full Changelog: 7.0.0...7.0.1