Releases
0.16.0
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 !
You can’t perform that action at this time.