What's Changed
Fixes
- Fix: issues found while scanning are lost with a warm cache by @alies-dev in #13156
- fix(types): an array key that may be mixed is array-key by @jirkace in #13176
- Fix implicit native __toString overrides and safeguard callmap generation by @orklah in #13235
- Fix LSP lookup of builtin functions in files not analyzed in-process by @M393 in #13237
- [6.x] Infer return types for
array_firstandarray_last(PHP 8.5) by @alies-dev in #12157 - [6.x] Infer the key parameter of
array_find/array_any/array_allcallbacks by @alies-dev in #13245 - [6.x] Infer the exact element removed by
array_pop/array_shiftby @alies-dev in #13246 - fix(algebra): keep every orred clause of a variable when reconciling by @jirkace in #13114
- fix(types): an inherited docblock identical to the native return type keeps static of the called class by @jirkace in #12968
- fix(templates): check a method call against every type of a union template bound by @jirkace in #13106
Docs
- Document the Psalm GitHub actions by @danog in #13051
- Document --consolidate-cache by @alies-dev in #13256
Internal changes
- Add guzzle/promises to the perf corpus by @alies-dev in #12984
- Push the docker image to ghcr.io/psalm/psalm by @danog in #13044
- [6.x] Push the files composer build regenerates instead of failing by @danog in #13147
- Perf: stop parsing the same vendor files again and again (10–55% less CPU on projects extending vendor classes) by @alies-dev in #13234
- Social medial: announce on X and Mastodon only the releases worth a post by @alies-dev in #13241
- Merge 6.x into master by @alies-dev in #13243
- Merge 6.x into master by @alies-dev in #13247
Full Changelog: 7.0.2...7.0.3