github rectorphp/rector 0.17.7
Released Rector 0.17.7

latest releases: 1.2.5, 1.2.4, 1.2.3...
14 months ago

New Features 🥳

  • [CodingStyle] Skip filled by construct on AddArrayDefaultToArrayPropertyRector (#4549)
  • Add constuctor support to ReplaceArgumentDefaultValueRector (#4554)
  • StaticMapper: added fast path for IdentifierTypeNode (#4565), Thanks @staabm!
  • Add ReturnTypeFromStrictParamRector (#4501), Thanks @staabm!
  • Add TypedPropertyFromStrictConstructorReadonlyClassRector (#4552), Thanks @staabm!
  • ReturnTypeFromStrictTernaryRector: Support complex ternaries (#4515), Thanks @staabm!

Bugfixes 🐛

  • Support final methods in ClassMethodReturnTypeOverrideGuard (#4509), Thanks @staabm!
  • Support literals in ReturnTypeFromStrictTypedCallRector (#4511), Thanks @staabm!
  • [TypeDeclaration] Null stmts check early on ReturnTypeFromStrictParamRector (#4512)
  • [Performance] Use filtered filePaths from ApplicationFileProcessor::configurePHPStanNodeScopeResolver on WorkerRunner::run() (#4513)
  • [DX] Show progress bar 100% on RectorConsoleOutputFormatter::report() (#4516)
  • [ChangesReporting] Reuse defined errors vairable on ConsoleOutputFormatter (#4517)
  • [ApplicationFileProcessor] Refactor ApplicationFileProcessor to filter file paths early before run both parallel and non-parallel (#4519)
  • [DX] Fix hang on twice run after all files processed cached (#4521)
  • [Application] Move filter files by config extensions to FileFactory (#4522)
  • [Php81][Php82][Privatization] Handle extends non-readonly class on ReadOnlyPropertyRector+ReadOnlyClassRector+FinalizeClassesWithoutChildrenRector (#4524)
  • Fix wrong results in RemoveAlwaysElseRector (#4527), Thanks @jlherren!
  • Support class-const-fetch in ReturnTypeFromStrictTypedCallRector (#4520), Thanks @staabm!
  • [EarlyReturn] Skip append variable on PreparedValueToEarlyReturnRector (#4530)
  • Refactor MyCLabs\Enum\Enum::equals calls to comparisons (#4532), Thanks @rojtjo!
  • [Performance][NodeManipulator] Avoid loop on search first variable named on next sliced next stmts on StmtsManipulator (#4537)
  • [Performance] [TypeDeclaration] Reduce resolve ClassReflection on each property on TypedPropertyFromStrictConstructorRector (#4536)
  • [Performance][TypeDeclaration] Reduce resolve ClassReflection from Property on AllAssignNodePropertyTypeInferer (#4539)
  • [Application] Merge process files on both parallel and non-parallel process (#4523)
  • [PHPStan] Merge assert phpstan errors to one (#4544)
  • [Performance] [Php74] Reduce ClassReflection lookup from property on PropertyTypeChangeGuard (#4545)
  • Use instanceof check on ClassReflection resolve (#4547)
  • [Reflection] Reduce Scope pulling on ReflectionResolver (#4548)
  • [Strict] Skip empty() from param doc on DisallowedEmptyRuleFixerRector (#4550)
  • Fix space in paths (#4553)
  • Skip traits in CountOnNullRector (#4556)
  • Make use of toPhpDocNode() - take #2 (#4555)
  • [Performance] [PostRector] Only check phpdocinfo on Stmt and Param on NameImportingPostRector (#4558)
  • [CodeQuality] Skip pull property from inner class on CompleteDynamicPropertiesRector (#4561)
  • Prevent unnecessary scope creation (#4562), Thanks @staabm!
  • NameImportingPhpDocNodeVisitor: Cheap checks first (#4563), Thanks @staabm!
  • [Performance][Renaming] No need PhpDocInfo refactor on Name node on ClassRenamer (#4566)
  • [TypeDeclaration] Deprecate ArrayShapeFromConstantArrayReturnRector as uses docblocks that we move away from since 0.15 (#4571)
  • Make ReturnTypeFromStrictNewArrayRector handle only single level arrays (#4575)
  • Fix array mapping (#4576)
  • [Performance] [PostRector] Reduce repetitive resolve uses statements on NameImportingPostRector (#4579)
  • [EarlyReturn] Handle multiple statements in else in ChangeIfElseValueAssignToEarlyReturnRector (#4580), Thanks @dorrogeray!
  • [BUGFIX] Ensure proper reprint with attributes for finalized classes (#4585), Thanks @cngJo!

Removed 💀

  • [DX] Remove AllowEmptyConfigurableRectorInterface to ease interface tree, better handle on particular configure() method inside the rule (#4540)
  • Skip description on same line, remove on next line as based on phpdoc-parser in RemoveUselessParamTagRector (#4551)
  • [Performance][PostRector] Remove alias exists check on NameImporter called from NameImportingPostRector (#4564)
  • [Performance][BetterPhpDocParser] Remove unused ConstExprNode check on ConstExprClassNameDecorator (#4578)
  • [PHPStanStaticTypeMapper] Remove manual type check on PHPStanStaticTypeMapper (#4583)
  • [StaticTypeMapper] Remove standalone false handling on StaticTypeMapper (#4582)

Don't miss a new rector release

NewReleases is sending notifications on new releases.