What's Changed
Removed
- Finalize (and internalize) more classes by @weirdan in #7578
- Finalize issues by @weirdan in #7595
- Finalize storages by @weirdan in #7597
- Finalize virtual nodes by @weirdan in #7598
- Finalize types nodes by @weirdan in #7623
- remove totallyTyped by @orklah in #7651
Deprecations
Features
- Resolve DIR / FILE when const/variable is used for include by @tomasz-kusy in #7585
- add ReflectionIntersectionType stub by @orklah in #7621
- Allow config to define thread count (4.x) by @M1ke in #7633
- add phpredis stubs by @kkmuffme in #7614
- Add configuration option to disable @var parsing everywhere except for properties. by @danog in #7434
- More class const improvements. by @AndrolGenhald in #7666
- Add
@psalm-check-type
and@psalm-check-type-exact
. by @AndrolGenhald in #7686 - feat(types): add properties-of type by @Patrick-Remy in #7359
- Invert meaning of dupe_key by @danog in #7475
Fixes
- fix wrong detection of purity by @orklah in #7545
- Fix object constant inference by @klimick in #7542
- Handle first class callable on unknown functions by @orklah in #7546
- Revert "PHP 8.1: Report missing typehints in overridden native methods" by @weirdan in #7539
- Ensure
trait_exists()
always returnsbool
by @Ocramius in #7554 - sealed keyed arrays by @orklah in #7558
- AtomicStaticCallAnalyzer: clear tmp var from context by @vincent4vx in #7561
- improving error message for Could not resolve config path by @phptest2 in #7573
- Fix crash when assigning reference to unknown array offset by @AndrolGenhald in #7583
- Strip colours from success message by @weirdan in #7620
- Fix #6683 by improving simplification of CNF by @muglug in #7631
- Honour global function suppressions for UndefinedFunction by @weirdan in #7657
- Update return type for mysqli::connect_error by @morozov in #7660
- Correct name of ErrorException::__construct $line param by @chloekek in #7659
- Enum collapsing by @orklah in #7655
- Enum assertions by @orklah in #7662
- Consistency for empty reconciliations by @orklah in #7663
- Fix false positive for unused variable in try (fixes #7613). by @AndrolGenhald in #7664
- fix count with match on arrays by @orklah in #7665
- Prevent unnecessary filter_var() warnings on primitive types by @mmcev106 in #7677
- Throw exception if file_put_contents failed by @dmitryuk in #7690
- Improve bool to int casting. by @AndrolGenhald in #7696
- Fix issues with int range unpacking and with min/max by @AndrolGenhald in #7699
- Analyze attribute statements instead of constructing virtual statements. by @AndrolGenhald in #7692
- Fix some minor issues with references. by @AndrolGenhald in #7684
- Config threads: add to config.xsd by @M1ke in #7708
- Use current context when analyzing attributes by @AndrolGenhald in #7713
- Fix first-class callable in loop by @trowski in #7715
- Support for properties in interfaces extending
\UnitEnum
&\BackedEnum
by @whatUwant in #7719 - PDOException extends RuntimeException and can use int code errors by @VincentLanglet in #7673
- allow SimpleTypeInferer to infer non empty lists by @orklah in #7732
- Attribute analysis improvements by @AndrolGenhald in #7727
- restore callable-string Id by @orklah in #7787
- fix refining lowercase string and non-empty-string together by @orklah in #7844
- Remove
@psalm-generator-return
annotation by @jrmajor in #7853 - Resolve #7855 remove false from return type, in php8.0 and further ve… by @dkemper in #7859
Docs
- doc about property initialization by @orklah in #7593
- Fix issue documentation links. by @AndrolGenhald in #7687
- Improve documentation for InvalidGlobal to explain that it's sometimes valid by @AndrolGenhald in #7693
- Fix int-mask-of doc example by @Seldaek in #7812
- Documented the allowMissingFiles attribute for ignoreFiles by @mmcev106 in #7867
Internal changes
- Fix extension capitalization issue, add extensions to version message. by @AndrolGenhald in #7574
- Added backward compatibility check by @weirdan in #7576
- Allow mocking final classes by @weirdan in #7591
- Fixed composer branch-alias by @sasezaki in #7594
- No longer require declare reflection-docblock:^5 as dependency by @sasezaki in #7612
- Bump up phpunit,prophecy, and introduced phpspec/prophecy-phpunit by @sasezaki in #7617
- consistency in AssertionFinder by @orklah in #7622
- skip a test because we removed the feature for now by @orklah in #7642
- Adjust for composer-require-checker check. by @sasezaki in #7632
- Removed .scrutinizer.yml by @sasezaki in #7652
- Use
array_fill_keys()
by @weirdan in #7661 - Fixed PSR-4 warnings by @weirdan in #7683
- chore: enable psl tests again by @azjezz in #7596
- Make callbacks marked as static by @SCIF in #6695
New Contributors
- @phptest2 made their first contribution in #7573
- @tomasz-kusy made their first contribution in #7585
- @chloekek made their first contribution in #7659
- @dmitryuk made their first contribution in #7690
- @whatUwant made their first contribution in #7719
- @Seldaek made their first contribution in #7812
- @dkemper made their first contribution in #7859
Full Changelog: 5.0.0-alpha1...5.0.0-beta1