New Features 🥳
- Update PHP-Parser to ^4.15.2 (#3057)
- [Php80] Add $object::class support on GetDebugTypeRector (#3039)
- [Php81] Register uniqid function on NullToStrictStringFuncCallArgRector (#3045), Thanks @bkosun!
- [Init] Add smart paths detection to "init" command to make first Rector experience better (#3050)
- [Core] Improve performance: only reindex Node Attributes when Original Node is not null (#3043)
- [Core] Improve performance: only update and connect parent Node when different Node (#3044)
- [Core] Improve performance: remove unnecessary loop StmtsAwareInterface to fill Scope on PHPStanNodeScopeResolver (#3048)
- [Core] Improve performance on NodeComparator (#3049)
- [Core] Improve performance: verify consecutive execute same Rector Rule when Original Node is Null (#3047)
- [Core] Improve performance: remove unnecessary loop on SimpleCallableNodeTraverser (#3053)
Bugfixes 🐛
- [Caching] Fix cache consecutive run rector with --dry-run (#3060)
- [Php80][CodeQuality] Handle crash on ExplicitMethodCallOverMagicGetSetRector+ChangeSwitchToMatchRector (#3034)
- [Php55] Handle crash on ([[:upper:]]+) regex on PregReplaceEModifierRector (#3037)
- Apply node->isFirstCallable() check early before ->getArgs() when possible on CallLike (#3038)
- Fix var/property usage for RemoveUnusedNonEmptyArrayBeforeForeachRector. (#3040), Thanks @Wohlie!
- [Php81][Restoration] Handle crash on ReadOnlyPropertyRector+MakeTypedPropertyNullableIfCheckedRector (#3046)
- Re-print on constructor promotion (#3051), Thanks @greg0ire!
- remove NodeTypeAnalyzer (#3055), Thanks @staabm!
- [Core] Fix resolve scope handling when parent Node just re-printed (#3056)