Releases: rectorphp/rector
Releases · rectorphp/rector
Released Rector 0.19.8
Released Rector 0.19.7
Bugfixes 🐛
- [TypeDeclaration] Skip assign in construct with method call property same name on RestoreDefaultNullToNullableTypePropertyRector (#5556)
- [Privatization] Fix reprint with attribute on FinalizeTestCaseClassRector (#5557)
- [DX] Fix missing Rector\RectorGenerator\Exception\ConfigurationException (#5558)
- Fix platform version resolution, use require first (#5555)
- bump template version (rectorphp/rector-src@02a088c)
Released Rector 0.19.6
New Features and Changes 🥳
- [EarlyReturn] Improve RemoveAlwaysElseRector to handle multiple ElseIfs (#8178) (#5521), Thanks @pkvach!
- [Privatization] Add FinalizeTestCaseClassRector (#5539)
- Add support for YieldFrom into places where Yield_ is checked (#5499), Thanks @integer!
- [Transform] Add RectorConfigBuilderRector (#5551)
- [DX] Warn about run on /vendor directory (#5525)
- [DX] PHP sets should not disable all other version-based rules (#5527)
- [stabilize] Deprecate FinalizeClassesWithoutChildrenRector as causing bugs without full context (#5535)
Bugfixes 🐛
- Fix xdebug handling (#5544), Thanks @staabm!
- Added 4 methods into RectorConfigBuilder (#5524), Thanks @Perf!
- Fix AddMethodCallBasedStrictParamTypeRector if already has a type (#5530)
- [CodingStyle] Return null on no change on StrictArraySearchRector (#5528)
- [Php81] Allow nullable union on NullToStrictStringFuncCallArgRector (#5532)
- [stabilize] Deprecate FinalizePublicClassConstantRector as not reliable and causes uncontroller changed (#5534)
- [TypeDeclaration] Change bool to false or true docblock when union has false/true standalone type on ReturnUnionTypeRector (#5543)
- [EarlyReturn] Skip append variable in PreparedValueToEarlyReturnRector (#8390) (#5545), Thanks @pkvach!
- Fix make ReadOnlyPropertyRector skip if traits are used, as not reliable (#5548)
- Kick off basic rector.php with simpler and more practical rule (#5552)
Removed 💀
- Exclude finalize rule from private set, to keep safer (#5523)
- [Performance] Remove CollectedData on ProcessResult (#5520)
- [stabilize] Remove family tree check from ClassMethodParamVendorLockResolver as not reliable (#5536)
- [stabilize] Remove child classes from MixedTypeRector as not reliable (#5537)
- [stabilize] Remove last children method checks (#5538)
Released Rector 0.19.5
Released Rector 0.19.4
Bugfixes 🐛
- Fix configured rule (#5517)
Released Rector 0.19.3
New Features ahd Changes 🥳
- [Config] Add RectorConfigBuilder (#5503)
- Add gitlab to "setup-ci" command (#5497)
- Add "custom-rule" command to make creating rules easy (#5498)
- [Windows] Rework add windows support on tests CI (#5504)
- make literal separator optional, as rather coding style and not always desired (#5505)
Bugfixes 🐛
- [Php70] Skip inside Encapsed on ThisCallOnStaticMethodToStaticCallRector (#5481)
- [Performance] Cache PHP version features on reading composer.json on PhpVersionProvider (#5484)
- Fix phpstan (#5489)
- [Config] Restore default values for RectorConfig->parallel() config similar to original <=0.18.x version (#5472)
- [Performance][PhpParser] Deprecate InlineCodeParser::parse(), extract into parseFile() and parseString() (#5482)
- [CodeQuality] Skip surplus open square bracket on SimplifyRegexPatternRector (#5494)
- [AutoImport] Skip start with <?= short open tag on auto import (#5496)
- [Testing] Deprecate FileInfoParser, use existing TestingParser instead (#5501)
- custom copy path fix (#5502)
- [DX] Allow Arg in value resolver, as often used and intuitive (#5512)
- [Windows] Support replace \r\n on DocBlockInliner (#5513)
- [Php83] add string type to concat constant (#5516), Thanks @jdohuutin!
Removed 💀
Released Rector 0.19.2
New features and Changes 🎉
- [DX] Depreate heavy and conflicting Symfony/Twig/PHPUnit level sets (#5477)
- Remove collectors, as performance very costly and not practically useful (#5470)
Bugfixes 🐛
- Fix repeated timeouts on CI - #8403, #8396
- Bump PHPStan to 1.10.56 (#5471)
- Remove collector interface and fix SpatieEnumClassToEnumRector already has underscore to double underscore (#5473)
- [DX] Depreate heavy and conflicting Symfony/Twig/PHPUnit level sets (#5477)
Removed 💀
Released Rector 0.19.0
In this release we merged 2 directories into /src
to speed up class loading and make work with code easier. This leads to BC change in namespace for your custom rules:
-use Rector\Core\
+use Rector\
That's it!
New Features 🥳
- [psr-4] Move /packages directory to /src under single Rector\ namespace (#5414)
- [Arguments] Allow no default value on ArgumentAdderRector (#5382)
- Add related polyfill interface to other PHP 8.0/7.3 rules (#5389)
- [CodingStyle] Add RemoveUselessAliasInUseStatementRector (#5394)
- [Php83] Add CombineHostPortLdapUriRector (#5397)
- [TypeDeclaration] optionally only add types for hard coded return values in
ReturnTypeFromStrictScalarReturnExprRector
(#5364), Thanks @RobertMe! - Add phpstan native cond types for getName() for nodes that always return a string (#5413)
- [Strict] Add StaticProperty supporton may be unitialized static property on DisallowedEmptyRuleFixerRector (#5428)
- [Php83] Add implements interface support on AddOverrideAttributeToOverriddenMethodsRector (#5429)
- [cs] Make use of new ECS config (#5445)
Bugfixes 🐛
- [TypeDeclaration] Add false and true in union support on ReturnUnionTypeRector (#5355)
- Skip classes without final and exception as possibly invoke child implement in AddVoidReturnTypeWhereNoReturnRector (#5381)
- Skip non-final class method with no content in AddVoidReturnTypeWhereNoReturnRector (#5386)
- [TypeDeclaration] Allow add void return type on magic
__invoke()
method on AddVoidReturnTypeWhereNoReturnRector (#5376) - Add
ReturnTypeFromStrictBoolReturnExprRector
support for if/else returns (#5384) - Skip void without final keyword in ReturnNeverTypeRector as could be implemented with more precise children (#5379)
- Fix StrictArrayParamDimFetchRector for string access (#5383)
- Fix variable to property fetch update in ClassPropertyAssignToConstructorPromotionRector (#5385)
- [Php] Fix filter cache on PolyfillPackagesProvider (#5390)
- [Parallel] Fix missing --xdebug in WorkerCommand line on WorkerCommandLineFactory when --xdebug provided (#5398)
- Bump phpstan to 1.10.50 (#5399)
- [Php83] Handle dynamic host and port values on CombineHostPortLdapUriRector (#5401)
- [config] Extract RectorConfigValidator and handle config validation there (#5404)
- [psr-4] Update Rector core test reference (#5410)
- [cleanup] Decouple changelog generator (#5412)
- [Strict] Handle may be unitialized property on DisallowedEmptyRuleFixerRector (#5409)
- Bump min. version to PHP 8.2 - readonly classes (#5415)
- Decouple LongAndDependentComplexRectorRule to cognitive-complexity package (#5427)
- [TypeDeclaration] Skip with empty() check on StrictArrayParamDimFetchRector (#5432)
- [TypeDeclaration] Allow both integer and string index array on StrictArrayParamDimFetchRector (#5433)
- [TypeDeclaration] Skip re-assign with call and use as arg on StrictArrayParamDimFetchRector (#5434)
- [CodeQuality] Handle crash with call inside loop on SimplifyForeachToCoalescingRector (#5436)
- [TypeDeclaration] Handle with default null on ParamTypeByMethodCallTypeRector (#5437)
- [NodeTypeResolver] Handle crash PHPStan\File\CouldNotReadFileException: Could not read file on IntermediateSourceLocator (#5438)
- Allows to convert Spatie enum names to snake upper case (#5435), Thanks @JoolsMcFly!
- fix: RenameMethodRector should handle NullsafeMethodCall (#5444), Thanks @nikophil!
- [Php80][CodeQuality] Handle crash on ChangeSwitchToMatchRector + TernaryFalseExpressionToIfRector on under if else (#5446)
- Skip cond with side effect in RemoveDeadConditionAboveReturnRector (#5424)
- [DeadCode] Skip nullable array on RemoveUnusedNonEmptyArrayBeforeForeachRector (#5375)
- Keep called method in RemoveEmptyClassMethodRector (#5425)
Removed 💀
- [DeadCode] Remove RemoveJustPropertyFetchForAssignRector as tailored for single case of private project, not practical for generic use (#5418)
- remove array spread from coding style, as often part of personal preference (rectorphp/rector-src@a326b85)
Released Rector 0.18.13
New Features 🥳
- [DeadCode] Add Function_ support on RemoveUselessReturnTagRector (#5325)
- [TypeDeclaration] Add MergeDateTimePropertyTypeDeclarationRector (#5327)
- [DeadCode] Add Function_ support on RemoveUselessParamTagRector (#5331)
- [DeadCode] Add RemoveNullTagValueNodeRector (#5352)
Bugfixes 🐛
- [Php83] Fix const from applying incorrect types (#5326), Thanks @peterfox!
- [TypeDeclaration] Fix missing change type to DateTimeInterface on MergeDateTimePropertyTypeDeclarationRector (#5329)
- [TypeDeclaration] Handle DateTimeInterface from use statement on MergeDateTimePropertyTypeDeclarationRector (#5330)
- [TypeDeclaration] Handle assign $this on TypedPropertyFromAssignsRector (#5333)
- Fix array type if property is used in TypedPropertyFromStrictConstructorRector (#5339)
- [Naming] Skip DateTimeImmutable on RenamePropertyToMatchTypeRector (#5340)
- [PHP 7.4] Skip typed properties in the set, as standalone set now available (#5342)
- [TypeDeclaration] Skip has child return different type on ReturnNeverTypeRector (#5343)
- [Experiment][TypeDeclaration] Allow change abstract class methods with body on ReturnType*Rector (#5344)
- [Php55] Make StringClassNameToClassConstantRector configurable to keep first pre-backslash string configurable (#5354)
- [TypeDeclaration] Skip casted to (array) on StrictArrayParamDimFetchRector (#5356)
- [TypeDeclaration] Return new static from different object on ReturnTypeFromStrictTypedCallRector (#5357)
- [TypeDeclaration] Allow return static from under function on ReturnTypeFromStrictTypedCallRector (#5358)
- [Naming] Skip
$this
in RenameForeachValueVariableToMatchExprVariableRector (#5360), Thanks @sreichel! - [Transform] Do not create a new node if the existing node is already the correct one on AttributeKeyToClassConstFetchRector (#5328), Thanks @SerethiX!
- Bump to php parser 4.18 (#5362)
- [CodeQuality] Skip Superglobals variable on SimplifyEmptyCheckOnEmptyArrayRector (#5369)
- [Php55] Handle crash after exit() on GetCalledClassToSelfClassRector (#5372)
- [CodeQuality] Skip method call on else on TernaryFalseExpressionToIfRector (#5373)
- Remove return type in case of never in RemoveUselessReturnTagRector (#5323), Thanks @staabm!
- [DeadCode] Remove unused @return mixed on RemoveUselessReturnTagRector (#5332)
- [DeadCode] Skip has parent class with __call() magic method on RemoveParentCallWithoutParentRector (#5336)
- [PHP 5.5] Remove extra preslash in class reference, as in practice removal manually (#5338)
- [DeadCode] Remove null as never used param type in RemoveUselessParamTagRector (#5348)
- Remove json throw on error rule from PHP 7.3 set, as changed behavior and must be applied on purpose (#5349)
- [Testing] Remove unnecessary set Parameter Source on TestingParser (#5371)
Released Rector 0.18.12
New Features 🥳
- [CodeQuality] Add RemoveUselessIsObjectCheckRector (#5316)
- [PHP83] Implements a rule to add types to class constants (#5290), Thanks @peterfox!
Bugfixes 🐛
- [TypeDeclaration] Skip iterable already there in AddReturnTypeDeclarationFromYieldsRector (#5291)
- [TypeDeclaration] Remove ParamTypeFromStrictTypedPropertyRector as seems similar feature with AddParamTypeFromPropertyTypeRector (#5293)
- [CodingStyle] Remove AddArrayDefaultToArrayPropertyRector as based on docblock types and public contract, better use type declaration set instad (#5298)
- [TypeDeclaration] Skip return void in abstract empty class in AddVoidReturnTypeWhereNoReturnRector (#5311)
- [Php80] Skip PDO::query() on AddParamBasedOnParentClassMethodRector (#5313)
- [TypeDeclaration] Add If else assign support on TypedPropertyFromAssignsRector (#5314)
- [CodeQuality] Make CommonNotEqualRector skip if not <> (#5292)
- [Naming] Skip singularize "cms" on RenameForeachValueVariableToMatchExprVariableRector (#5294)
- [TypeDeclaration][Performance] Check typed param already early on ParamTypeByMethodCallTypeRector (#5295)
- [Strict] Fix DisallowedEmptyRuleFixerRector empty() allow string '0' check (#5296)
- [EarlyReturn] Skip duplicating complex expression in ChangeAndIfToEarlyReturnRector (#5301)
- [Scoped] Exclude symfony/console/Debug/CliRequest.php from parallel-lint PHP 7.2 syntax check (#5304)
- Skip RenameMethodRector in never (#5305), Thanks @staabm!
- [CodeQuality] Skip with else on SimplifyForeachToCoalescingRector (#5307)
- [Doc] Typo fix on sample code documentation on SimplifyForeachToCoalescingRector (#5308)
- [Privatization] Skip call non-private method on non-final class on PrivatizeLocalGetterToPropertyRector (#5309)
- [Privatization] Fix first class callable in PrivatizeLocalGetterToPropertyRector (#5310)
- [TypeDeclaration] Keep constant false return type from strict native call (#5223), Thanks @tomi85!
- [PHP 7.0] Skip mt_rand() replacement as not valuable (#5315)
- [Strict] Allow check '0' empty zero on BooleanInTernaryOperatorRuleFixerRector on string type (#5297)
- Fix annotation to attribute parsing string (#5317)
- [Instanceof] Fix combination of dead instance and compare (#5319)
- Remove isPositiveInteger() check for third argument to strpos() (#5257), Thanks @ikari7789!
- Remove return type in case of void in RemoveUselessReturnTagRector (#5318)
- [DeadCode] Skip @return never with void on RemoveUselessReturnTagRector (#5320)
- [DeadCode] Remove useless nullable @return doc on RemoveUselessReturnTagRector (#5321)