github rectorphp/rector 0.16.0
Released Rector 0.16.0

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

New Features 🥳

  • [TypeDeclaration] Add WhileNullableToInstanceofRector (#3680)

Bugfixes 🐛

  • Fix SingleInArrayToCompareRector if array item is variadic (#3640), Thanks @raoz!
  • [Php80] Handle crash leaveNode() returned invalid value of type integer on TokenGetAllToObjectRector (#3644)
  • [TypeDeclaration] Handle mix InlineHTML on FileWithoutNamespace (#3648)
  • Simplify PhpFilesFinder (#3649), Thanks @staabm!
  • [Test] Rename fixture and refactor to solve random error (#3677)
  • [TypeDeclaration] Refactor UnionTypeMapper::narrowBoolType() to allow bool|int|false converted to bool|int (#3685)
  • Update phpdoc-parser to ^1.20.3 (#3691)
  • [Privatization] Skip variable assign append on ChangeReadOnlyVariableWithDefaultValueToConstantRector (#3687), Thanks @mickeytodd!
  • [NodeManipulator] clean up multiple instanceof check on AssignManipulator (#3695)
  • [CodeQuality] Using local variable $hasChanged on NarrowUnionTypeDocRector (#3697)
  • Cache on successful file processing (#3614), Thanks @yguedidi!
  • [CodingStyle] Skip concat on first arg on ConsistentImplodeRector (#3702), Thanks @nerones!
  • Fix ExplicitMethodCallOverMagicGetSetRector with a protected method (#3732), Thanks @pierredup!
  • [TypeDeclaration] Handle infinite loop on array_reverse with index on AddMethodCallBasedStrictParamTypeRector on php8+ feature (#3678)
  • [TypeDeclaration] Handle regression multiple params no longer working on AddMethodCallBasedStrictParamTypeRector (#3681)
  • [TypeDeclaration] Add do { } while support on WhileNullableToInstanceofRector (#3682)
  • [Php56][Php70][Php74] Handle infinite loop on AddDefaultValueForUndefinedVariableRector+IfToSpaceshipRector+ClosureToArrowFunctionRector (#3701)

Performance Improvements 🚀

  • [Performance] Using findFirst() for cast to (bool) so no need search all found nodes (#3642)
  • [Performance] Using cheap chekc first on UndefinedVariableResolver::shouldSkipVariable() (#3643)
  • [CodeQuality] Improve SimplifyIfElseToTernaryRector performance (#3721)
  • [Renaming] Prevent overly greed type resolving in RenamePropertyRector (#3700), Thanks @staabm!
  • Don't calculate diffs when --no-diffs is given (#3710), Thanks @staabm!
  • Calculate diff only once per file after refactoring (#3711), Thanks @staabm!
  • Improve PropertyFetchAnalyzer performance (#3654), Thanks @staabm!
  • Improve LocalMethodCallFinder performance (#3651), Thanks @staabm!
  • Improve LocalConstantFinder performance (#3652), Thanks @staabm!
  • Improve NodeComparator performance (#3659), Thanks @staabm!
  • Improve ReflectionResolver performance (#3658), Thanks @staabm!
  • Improve ParentClassMethodTypeOverrideGuard performance (#3660), Thanks @staabm!
  • [PHPStanStaticTypeMapper] Improve UnionTypeMapper performance (#3686)
  • [PHPStanStaticTypeMapper] Improve UnionTypeMapper performance take 2 (rectorphp/rector-src@931e6e2)
  • [PHPStanStaticTypeMapper] Improve performance of UnionTypeMapper take 3 (#3690)
  • [Renaming] Improve performance of RenameFunctionRector (#3699)
  • Add e2e tests for consecutive changing runs (#3666), Thanks @yguedidi!
  • [Renaming] Improve performance of RenamePropertyRector (#3698)
  • [Naming] Improve performance by using findFirst() for casted to (bool) on BreakingVariableRenameGuard (#3703)
  • [PostRector] Improve performance NameImportingPostRector (#3708)
  • [Ast] Improve AstResolver and ClassLikeAstResolver performance (#3714)
  • [NodeManipulator] Improve IfManipulator::collectNestedIfsWithNonBreaking() performance (#3720)
  • Prevent unnecessary IO in ChangedFilesDetector (#3650), Thanks @staabm!
  • [BetterPhpDocParser] Simplify BetterTokenIterator (#3656), Thanks @staabm!
  • [Skipper] Prevent unnecessary IO (#3664), Thanks @staabm!
  • NodeTypeResolver: prevent unncessary reflection calls (#3647), Thanks @staabm!

Don't miss a new rector release

NewReleases is sending notifications on new releases.