What's Changed
Deprecations
Features
- #7387 Add asserting non-empty-string by strlen by @LeoVie in #8761
- Forbid implementing some interfaces by @weirdan in #9272
- Added issue type and psalm.dev link to Emacs report by @weirdan in #9299
- Allow
@var
annotations on global vars by @weirdan in #9301 - Allow suppressing
MissingThrowsDocblock
for individual exceptions by @weirdan in #9303 - Flag direct constructor calls by @weirdan in #9311
- Flag docblock parameters that have no counterparts in function signature by @weirdan in #9314
- Forbid non-null defaults for callable parameters by @weirdan in #9316
Fixes
- cdata in baseline by @jack-worman in #9184
- Resolve class constants within PhpStorm metadata by @shvlv in #9173
- Detect duplicate keys in array shapes by @danog in #9177
- Fix xmlrpc callmap functions that were dropped in PHP 8.0 by @othercorey in #9212
- fix
didChange
event in LSP by @ging-dev in #9207 - Added @psalm-pure to filter_var() by @mmcev106 in #9170
- Add DatePeriod::INCLUDE_END_DATE option by @othercorey in #9220
- Add more specific return for class-implements by @othercorey in #9228
- Convert callmaps resource types by @othercorey in #9227
- Use "numeric-string" type for some MySQLi properties by @phansys in #9226
- find_unused_code CLI arg should not be overwritten by config file by @kkmuffme in #9235
- Fix divide by a floating point zero by @aboyton in #9247
- Don't crash on unknown exceptions in
@throws
docblock by @weirdan in #9250 - Fix Spoofchecker callmaps by @othercorey in #9256
- Fix crashes with invalid
@psalm-check-type
syntax by @weirdan in #9257 - Fix crash when int range boundary is overflown by @weirdan in #9260
- Drop abandoned mcve m_ functions by @othercorey in #9266
- Fix several callmap fuction signatures by @othercorey in #9264
- fix lstat bug cache directory race condition by @kkmuffme in #9253
- Drop removed xsl callmap functions by @othercorey in #9269
- Drop abandoned maxdb callmap functions by @othercorey in #9270
- Drop abandoned newt callmap functions by @othercorey in #9271
- Update callmap types for php 8.2 by @othercorey in #9273
- Fix opcache being loaded twice by @weirdan in #9265
- Forbid overriding built-in enum methods by @weirdan in #9280
- Fix remaining callmap functions by @othercorey in #9278
- Add curl stubs to prevent crashes by @kamil-tekiela in #9283
- Compare enum cases thoroughly by @weirdan in #9286
- Drop abandoned ncurses extension by @othercorey in #9293
- Drop abandoned cairo extension by @othercorey in #9292
- Emit issues for calls to
is_a(string, class-string, false)
by @weirdan in #9287 - Made
WeakReference
mutable by @weirdan in #9297 - Flag class constant references where LHS is ordinary string by @weirdan in #9302
- Fixed issue message for missing
@psalm-external-mutation-free
by @weirdan in #9304 - Fix memcached extension callmap by @othercorey in #9309
- Fix strpos stub return type by @othercorey in #9322
- Propagate phantom classes to closure context by @weirdan in #9329
- Fix language server first-class callable crashes by @edsrzf in #9336
- Forbid first-class callables in
new
by @weirdan in #9338 - Negated is_numeric narrows scalar type by @edsrzf in #9339
Docs
- Documentation: Add BackedEnum compatibility to value-of docs by @bitwise-operators in #9252
- Added note on properties used in constructor only by @weirdan in #9298
- Added a page explaining how to add a new issue type by @weirdan in #9315
Internal changes
- Unify warning messages for deprecated config variables by @lptn in #9135
- Fix newly discovered CS issues by @weirdan in #9210
- Fixed more CS issues by @weirdan in #9236
- Always enable JIT by @danog in #9237
- Allow fidry/cpu-core-counter:v0.5 by @Slamdunk in #9234
- Update workflows to use non-deprecated method of setting step output by @weirdan in #9251
- Emit warning if opcache cannot be enabled by @danog in #9240
- Add option to skip callmap test by @weirdan in #9300
- Suggest Psalm to be installed in require-dev section by @weirdan in #9308
- Skip verifying callmaps based on name pattern by @othercorey in #9313
- Skip verifying memcache extension callmap by @othercorey in #9325
- Run assertions on CI by @lptn in #9318
- Allow spatie/array-to-xml v3 by @gharlan in #9331
- Disable JIT-incompatible extensions to prevent warnings by @weirdan in #9326
- Added the test to validate test environment itself by @weirdan in #9337
Other changes
New Contributors
- @shvlv made their first contribution in #9173
- @LeoVie made their first contribution in #8761
- @phansys made their first contribution in #9226
- @Slamdunk made their first contribution in #9234
- @aboyton made their first contribution in #9247
- @edsrzf made their first contribution in #9336
Full Changelog: 5.6.0...5.7.0