New Features and changes 🥳
- Add minimal memory limit for local run phpstan without result cache (#5624), Thanks @integer!
- Add method RectorConfigBuilder::withSkipPath() (#5626), Thanks @integer!
- Add basic validation for skipped path (#5628), Thanks @integer!
- [Php80] Add DoctrineCoverterterAttributeDecorator to convert "false"/"true" string to false/true on nullable arg on Doctrine\ORM\Mapping\Column (#5629)
- Add const fetch to class const fetch rector. (#5627), Thanks @micaherne!
- [DX] Add error message information for include full path to load internal phpstan bleedingEdge.neon config (#5635)
- [TypeDeclaration] Adds AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector rule (#5547), Thanks @peterfox!
- [Php83] Add type to final class constant (#5662), Thanks @philbates35!
Bugfixes 🐛
- [Php83] Early check private method in child before check parent on AddOverrideAttributeToOverriddenMethodsRector (#5622)
- RectorConfigBuilder: skip and rules can be called multiple times (#5623), Thanks @integer!
- [CodeQuality] Skip not autoloaded parent class on CompleteDynamicPropertiesRector (#5636)
- [Transform] Allow transform ruleWithConfiguration() to withConfiguredRule() on RectorConfigBuilderRector (#5637)
- [Rector] Allow transform sets() to withSets() on RectorConfigBuilderRector (#5638)
- [Transform] Allow transform disableParallel() to withoutParallel() on RectorConfigBuilderRector (#5640)
- [Transform] Allow transform fileExtensions() to withFileExtensions() (#5641)
- [Performance] [VendorLocker] Early allow change return type on private method on ClassMethodReturnTypeOverrideGuard::shouldSkipClassMethod() (#5642)
- [VendorLocker] Early return false on private method on ParentClassMethodTypeOverrideGuard::hasParentClassMethod() (#5644)
- [Renaming] Handle crash on RenameFunctionRector with die() and $_SESSION usage (#5646)
- Cleanup scope check on UnreachableStatementNodeVisitor (#5648)
- Keep comments in annotations when converting them to attributes (#5650), Thanks @carlos-granados!
- [Util] Make consistent new line splitter to Util (#5651)
- [TypeDeclaration] Fix abs() returns on ReturnTypeFromStrictTypedCallRector (#5652)
- [TypeDeclaration] Allow abs() to return int when pass int arg on ReturnTypeFromStrictTypedCallRector (#5653)
- [TypeDeclaration] Skip possible returns false on ReturnTypeFromStrictNewArrayRector (#5654)
- [TypeDeclaration] Include MockObject&ClassName docblock with IntersectionTypeNode on TypedPropertyFromStrictSetUpRector (#5655)
- [Renaming] New Rule: RenameFunctionLikeParamWithinCallLikeArgRector (#5554), Thanks @peterfox!
- [PHPStanStaticTypeMapper] Avoid double \ prefix on IntersectionTypeMapper (#5656)
- [BetterPhpDocParser] Clean up unnecessary create new ConstFetchNode() on ArrayItemClassNameDecorator (#5658)
- [Php71] Skip re-assign as string on AssignArrayToStringRector (#5659)
- [Privatization] Skip with suffix "TestCase" on FinalizeTestCaseClassRector (#5660)
- [Php71] Skip re-assign as string on AssignArrayToStringRector part 2 (#5661)
- [DeadCode] Fix infinite loop on RemoveDeadStmtRector + RemoveUnusedVariableAssignRector (#5666)
- [Php81] Skip execution operator on NullToStrictStringFuncCallArgRector (#5667)
- [Naming] Handle crash with numeric-string doc on RenamePropertyToMatchTypeRector (#5670)
- [CodeQuality] Handle crash on named arg on deep closure on OptionalParametersAfterRequiredRector (#5671)
- chore: bump min version of github actions (fix deprecations) (#5675), Thanks @Chris53897!
- [PHP 8.0] Fix case insenstive false positive replacement for str_ends_with (#5677)
- [Transform] Allow transform phpVersion() to withPhpVersion() on RectorConfigBuilderRector (#5678)
- Fix duplicated fixture class name on StaticToSelfStaticMethodCallOnFinalClassRector test (#5679)
- [CodeQuality] Skip nested array on InlineArrayReturnAssignRector (#5680)
- [CodeQuality] Skip combine var with property fetch on InlineArrayReturnAssignRector (#5681)
- [CodeQuality] Handle array destructuring of unpack on ArrayMergeOfNonArraysToSimpleArrayRector (#5682)
- Update README to use the new config syntax (#5674), Thanks @carlos-granados!
- [PostRector] Skip remove use statement on used in annotation on removeUnusedImports() (#5657)
- [DeadCode] Skip implements interface __construct() on RemoveUnusedPromotedPropertyRector (#5669)
- [Performance] [DeadCode] Early check no params in __construct() on RemoveUnusedPromotedPropertyRector (#5672)