Features
Compatibility with new Symfony polyfills
Recently some new Symfony polyfills contained code that didn't broke scanning.
@weirdan made Psalm aware of version checks in #4967, hopefully fixing this for consumers.
SARIF output (for security scanning)
@lukasbestle added help links in SARIF output (#4924) and ensured they can be produced by the Phar (#4925)
Bugfixes
- @hollodotme fixed the signature for
PDOStatement::fetchObject
(#4915) - @lukasbestle added better support for
$this
in@var
annotations (#4922) - @orklah allowed Psalm to understand string concatenation with known ints (#4938)
- allow
array_reduce
to be called with a single argument (#4917) - Security scanning @adrienlucas improved handling of specialised calls (#4940, #4948)
- @weirdan fixed signature of
gzread
(#4960) Traversable
interface added back toPDOStatement
(#4951)- Psalm now performs more intelligent subtraction of from potential template types (#4943)
- @weirdan added support for the
Attribute::IS_REPEATABLE
flag (#4971) - detect destructuring assignments inside loops (#4982)
- strict comparisons to arrays now produce better inferred types (#4976)
- @Ocramius improved the return type of
count
when the array size is known (#4997)
Internal
- @orklah added a DTO for plugins, rendering the existing plugin system a legacy one (#4881)
- and @adrienlucas fixed a small bug in the new plugin format (#4962)
- @weirdan stripped out some unnecessary files from the composer package (#4968)
- @weirdan moved Phar generation to GitHub Actions (#4974)
- @bendavies split out PHPUnit tests across GitHub actions (#4985)