New Features 🥳
Bugfixes 🐛
- [DeadCode][Privatization] Handle crash on RemoveDeadZeroAndOneOperationRector+ChangeReadOnlyPropertyWithDefaultValueToConstantRector (#2962)
- [DeadCode][EarlyReturn] Handle RemoveUnusedVariableAssignRector+RemoveAlwaysElseRector (#2964)
- Fix wrong results in ExactCompareFactory (#2973), Thanks @jlherren!
- [Php81] Skip assigned after defined as constructor promotion on ReadOnlyPropertyRector (#2976)
- [Php80] Handle crash on nullable scalar with mixed param on MixedTypeRector (#2977)
- [Core] Set compatible with latest BetterReflection usage to handle assert($startLine > 0) notice (#2978)
- [TypeDeclaration] Handle Parent ClassMethod has no Return_ stmt on ReturnTypeDeclarationRector (#2980)
- [Privatization] Skip Property unsetted on ChangeReadOnlyPropertyWithDefaultValueToConstantRector (#2981)
- fix symfony deprecation reports (rectorphp/rector-src@e58f390)
- [Core] Remove second param on ClassLikeAstResolver::resolveClassFromClassReflection() (#2975)
- [Core] Ensure refresh Scope Nodes when AbstractRector refactor() return array of Nodes (#2979)
- [Core][Symfony] Handle crash on get dynamic value ClassConstFetch by method call on ChangeStringCollectionOptionToConstantRector (#2984)
- [Php80] Handle crash after transform with trait-string on UnionTypesRector (#2985)
- Fix multi property default assign (#2986)
- Add new rule to simplify a last useless variable assignment. (#2963), Thanks @Wohlie!
- Fix missing extra import on NestedAnnotationToAttributeRector (#2989)
- Assert JoinColumns in CPP should be converted (#2991)