New Features 🥳
- Introduce
FileNodeto handle file-level changes (#7728) to be used instead ofFileWithoutNamespacenode - see https://github.com/rectorphp/rector-src/blob/main/UPGRADING.md for the upgrade - Add
PrivatizeFinalClassConstantRector(#7753), Thanks @simonschaufi! - [dead-code] Add
RemoveParentDelegatingConstructorRector(#7769)
Bugfixes 🐛
- Manage named arguments in ArgumentAdderRector rule (#7777), Thanks @carlos-granados!
- [compat] Add
SymplifyQuoteEscapeRectordeprecated rule for BC layer (#7744) - [Php81] Skip on Param default on ArrayToFirstClassCallableRector (#7749)
- [CodeQuality] Handle ternary in identical left/right on UseIdenticalOverEqualWithSameTypeRector (#7748)
- fix: chained calls on static calls (#7746), Thanks @calebdw!
- [code-quality] Extract standalone SortAttributeNamedArgsRector from SortNamedParamRector, to slightly different areas (#7750)
- [rename] Rename
SortNamedParamRectortoSortCallLikeNamedArgsRectorto be more clear about the intent (#7751) - [Php85] Skip under unset() on ArrayFirstLastRector (#7752)
- [Php81] ArrayToFirstClassCallableRector should not skip non-public methods from owning scope (#7760), Thanks @acoulton!
- [fix] wrap ternary in parenthese on string casting, if only cond is casted (#7745)
- [internal] Fix inline replace block removal not removed on deep block for InlineIfToExplicitIfRector + ReplaceBlockToItsStmtsRector (#7764)
- [TypeDeclaration] Skip class not found on ObjectTypedPropertyFromJMSSerializerAttributeTypeRector (#7774)
- [Php85] Skip defined int or string on ArrayKeyExistsNullToEmptyStringRector (#7758)
Removed 💀
- [DeadCode] Skip trait on RemoveAlwaysTrueIfConditionRector (#7759)
- [internal] Remove duplicated enterNode() type check already handled in node traverser (#7717)
- [dx] warn about deprecated beforeTraverse() method once FileNode is ready (#7768)
- [DeadCode] Skip next assign expr has side effect inside try {} on RemoveDoubleAssignRector (#7775)
- [DeadCode] Skip with different default param value child vs parent on RemoveParentDelegatingConstructorRector (#7776)
rectorphp/rector-symfony 🎵
- bump (#911)
- [code-quality] Add ReturnDirectJsonResponseRector (#910)
- Fix scoped downgrade SymfonyClass (#909)
- cover is safe (#908)
- [twig] add explicit attribute name arg, to improve context (#907)
- [Symfony73] Fix named arg different position crash on InvokableCommandInputAttributeRector (#905)
- [CodeQuality] Skip UserInterface instance on ControllerMethodInjectionToConstructorRector (#904)
- create ClassMethod directly in InvokableCommandInputAttributeRector, to keep newline per attribute (#903)
- Remove InvokableCommandInputAttributeRector from set (#901)
- [Validator] use constants for Email (#900), Thanks @JohJohan
rectorphp/rector-doctrine 🟠
- Make use of
FileNode(#474)
rectorphp/rector-phpunit 🟢
- [AnnotationsToAttributes] Handle both annotation and attributes exists on DataProviderAnnotationToAttributeRector (#603)
- [fix] skip AddInstanceofAssertForNullableArgumentRector on assert call (#602)
- [code-quality] Add AddInstanceofAssertForNullableArgumentRector (#601)
- use FileNode in DeclareStrictTypesTestsRector (#599)