What's Changed
Features
- Fix first-class callables with built-in, magic, undefined methods and callable expressions by @trowski in #7232
Fixes
- quote more chars in keyed array names by @orklah in #7225
- handle literal equality with integer ranges by @orklah in #7224
- Allow XdebugHandler version 3 by @johnstevenson in #7211
- Improve CliUtils $argv handling by @vstm in #7210
- Fix closure param type inference in generic context by @klimick in #7200
- Fix @psalm-internal with trailing whitespaces by @sj-i in #7207
- add missing samesite array attribute by @swiffer in #7215
- Contextual inference for closure param types by @klimick in #7228
- allow suppressing unevaluatedCode by @orklah in #7236
- mysqli_fetch_object: added missing generic by @staabm in #7240
- Checking
psalm-if-this-is
before applyingpsalm-this-out
by @klimick in #7251 - allow calling mutation_free function inside a mutation_free context by @orklah in #7253
- Fixes #7246, wrap getTypeContextAtPosition in try/catch by @tm1000 in #7247
- forbid calling impure callable in immutable context by @orklah in #7260
- revert #7054 by @orklah in #7263
Internal changes
- remove always true/false conditions by @orklah in #7229
- code grooming by @orklah in #7230
- more code grooming by @orklah in #7233
- Speed up Windows tests by @weirdan in #7245
- Improve negated reconciliation logic by @muglug in #7261
New Contributors
- @johnstevenson made their first contribution in #7211
- @vstm made their first contribution in #7210
- @swiffer made their first contribution in #7215
Full Changelog: 4.16.1...4.17.0