New Features 🎉
- [Php80] Add MixedTypeRector (#2701)
- [CodingStyle] Skip has static call call non static method on StaticArrowFunctionRector and StaticClosureRector (#2713)
- [Doc] Add documentation for parallel troubleshooting (#2722), Thanks @rafaelbernard!
- Add class-string typehint to MethodCallRename (#2726), Thanks @alexander-schranz!
Bugfixes 🐛
- [Php81] Skip Doctrine ORM MappedSuperClass attribute on ReadOnlyPropertyRector (#2712)
- [CodeQuality][CodingStyle] Handle crash assert($subStartPos >= 0 && $subEndPos >= 0) on combination CodeQuality and CodingStyle rules (#2707)
- [DeadCode] Handle crash on negation class const fetch with static:: and parent:: on RemoveDeadZeroAndOneOperationRector (#2714)
- [DowngradePhp81] Handle no scope on DowngradeFirstClassCallableSyntaxRector inside ArrayItem (#2709)
- Fix/do not inline constructor default when readonly (#2720), Thanks @kpn13!
- Fix/early return inline constructor default 7319 (#2716), Thanks @kpn13!
- [TypeDeclaration] Handle crash on intersection in Union type on AddMethodCallBasedStrictParamTypeRector (#2704)
- [DeadCode] Skip RemoveAlwaysTrueIfConditionRector on property use by @var docblock (#2717)
- Apply ParametersAcceptorSelectorVariantsWrapper::select() take 2 (#2718)
- ExplicitMethodCallOverMagicGetSetRector fix (#2719), Thanks @MartinMystikJonas!
- [Php56] Skip already initialized on next Stmt on AddDefaultValueForUndefinedVariableRector (#2721)
- [Php56] Ensure return null on empty variable initialization after check with existing stmts on AddDefaultValueForUndefinedVariableRector (#2723)
- [Php56] Handle jump not Expression stmt next initialized on AddDefaultValueForUndefinedVariableRector (#2725)