What's Changed
Deprecations
- deprecate forbidEcho by @orklah in #6902
- Mark loadXdebugStub as deprecated (removed in #7107). by @AndrolGenhald in #7466
- deprecate TPositiveInt by @orklah in #7474
- Deprecate template_extended_count by @danog in #7494
Features
- Errors on superior/inferior reconciliation by @orklah in #7335
- PHP 8.2: seal all properties configuration by @danog in #7242
- Add support of template for docblock methods by @vincent4vx in #7385
- Resolve generics of inherited pseudo methods by @vincent4vx in #7430
- PHP 8.1: Report missing typehints in overridden native methods by @danog in #7363
- Add configuration option to disable
@psalm-suppress all
by @danog in #7431 - Add support of docblock method using parent keyword by @vincent4vx in #7414
Fixes
- Do not throw exception on xinclude with fallbacks by @vstm in #7324
- Update return type of iterator_count and iterator_apply functions to 0|positive-int by @ricardoboss in #7331
- replace class name by full FQN for scoper by @orklah in #7337
- Seal the array inferred for hrtime by @orklah in #7349
- set the is_list flag for the array inferred for hrtime by @orklah in #7350
- Fix dir Callmap by @VincentLanglet in #7347
- refactor the TooFewArguments check to start checking with named arguments by @orklah in #7348
- allow short closure to return never by @orklah in #7326
- keep class-strings through array_merge by @orklah in #7356
- fix: pass static class name to ReturnTypeAnalyzer by @Patrick-Remy in #7366
- Support multiple elements by @wouterj in #7354
- Fix closure to have storage bug in codeAction by @tm1000 in #7368
- Refactor Reconciler::handleLiteralEquality by @orklah in #7304
- Handle inherited docblock method by @vincent4vx in #7391
- Catch additional InvalidArgumentException by @tm1000 in #7384
- Combine positive int and range by @orklah in #7400
- Psalm can't be sure get_object_vars will return an empty array unless object is known AND final by @orklah in #7401
- support @readonly for promoted properties by @orklah in #7403
- Fix
self
parsing forpsalm-if-this-is
andpsalm-self-out
by @klimick in #7405 - Improve signature of random_bytes() by @villfa in #7406
- Improve signature of DOMDocument::loadXML() by @villfa in #7407
- Fix kafka stubs by @danog in #7426
- Fix Incomplete return type for mb_split() function by @RishiKumarRay in #7432
- fix proc_open stub for php >= 8.0 by @brainlock in #7443
- change nullable for array signature to be equal to param signature by @swiffer in #7301
- handle two more cases of firstClassCallable by @orklah in #7460
- fix internal properties on interfaces by @orklah in #7467
- Add Exception->getCode() return type provider by @VincentLanglet in #7390
- Fix
array_replace
type by @ElisDN in #7483 - Add missing parameter to Phar::getMetadata() by @villfa in #7486
- Bugfix/#6151 typedoesnotcontainnull on return value from dom import simplexml by @KevinVanSonsbeek in #7489
- BugFix: Made DOMNode::nodeValue nullable by @KevinVanSonsbeek in #7501
Docs
Internal changes
- replace empty checks on Union with dedicated method by @orklah in #7336
- Fix faulty Config tests by @wouterj in #7355
- Fix @Covers annotation. by @AndrolGenhald in #7374
- Add test for issues.md to ensure all documented issues are listed. by @AndrolGenhald in #7383
- remove psl analysis from CI by @orklah in #7397
- use Reconciler::RECONCILIATION_* by @orklah in #7398
- drop phpunit compatibility aliases by @orklah in #7435
Other changes
New Contributors
- @Patrick-Remy made their first contribution in #7366
- @vincent4vx made their first contribution in #7391
- @RishiKumarRay made their first contribution in #7432
- @KevinVanSonsbeek made their first contribution in #7489
Full Changelog: 4.18.1...4.19.0