chore(deps): update dependency rector/rector to v0.19.8
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| rector/rector (source) | 0.13.0 -> 0.19.8 |
Release Notes
rectorphp/rector (rector/rector)
v0.19.8: Released Rector 0.19.8
New Features :partying_face:
- [experimental] Add withTypeCoverageLevel() method to streamline Rector integration to new projects (#5553)
Bugfixes :bug:
- Cache null result on ProjectComposerJsonPhpVersionResolver (#5559)
- Real fix paths The given paths do not match any files on RectorConfigBuilder (#5561)
v0.19.7: Released Rector 0.19.7
Bugfixes :bug:
- [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 (https://github.com/rectorphp/rector-src/commit/02a088c735b9b829c8f0dec445e71dea70e559bc)
v0.19.6: Released Rector 0.19.6
New Features and Changes :partying_face:
- [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 :bug:
- 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 :skull:
- 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)
v0.19.5: Released Rector 0.19.5
New Features :tada:
- [Autoloading] Allow to define bootstrapFiles([DIR . '/some.phar']) on BootstrapFilesIncluder (#5518)
- add withPhpSets() methods (#5519)
v0.19.4: Released Rector 0.19.4
Bugfixes :bug:
- Fix configured rule (#5517)
v0.19.3: Released Rector 0.19.3
New Features ahd Changes :partying_face:
- [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 :bug:
- [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 :skull:
- [Renaming] Remove namespace renames in ClassRename, as it should only rename references, not move to new namespace (#5487)
- [Renaming] Remove rename class name (#5488)
v0.19.2: Released Rector 0.19.2
New features and Changes :tada:
- [DX] Depreate heavy and conflicting Symfony/Twig/PHPUnit level sets (#5477)
- Remove collectors, as performance very costly and not practically useful (#5470)
Bugfixes :bug:
- Fix repeated timeouts on CI - https://github.com/rectorphp/rector/issues/8403, https://github.com/rectorphp/rector/issues/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 :skull:
- [Performance] Remove unused AttributeKey::ARGUMENT_POSITION (#5469)
- [Autoload] Remove src/core_namespace_aliases.php (#5476)
v0.19.1
v0.19.0: 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 :partying_face:
- [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 :bug:
- [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
ReturnTypeFromStrictBoolReturnExprRectorsupport 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 :skull:
- [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 (https://github.com/rectorphp/rector-src/commit/a326b8504d37093f639245da0b283f588f954890)
v0.18.13: Released Rector 0.18.13
New Features :partying_face:
- [DeadCode] Add Function_ support on RemoveUselessReturnTagRector (#5325)
- [TypeDeclaration] Add MergeDateTimePropertyTypeDeclarationRector (#5327)
- [DeadCode] Add Function_ support on RemoveUselessParamTagRector (#5331)
- [DeadCode] Add RemoveNullTagValueNodeRector (#5352)
Bugfixes :bug:
- [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
$thisin 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)
v0.18.12: Released Rector 0.18.12
New Features :partying_face:
- [CodeQuality] Add RemoveUselessIsObjectCheckRector (#5316)
- [PHP83] Implements a rule to add types to class constants (#5290), Thanks @peterfox!
Bugfixes :bug:
- [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)
v0.18.11: Released Rector 0.18.11
Bugfixes :bug:
- [DeadCode] Skip multi no stmts on RemoveDuplicatedCaseInSwitchRector (#5258)
- [Performance][Renaming] Remove unnecessary array_reverse() on RenameClassRector (#5266)
- [TypeDeclaration] Skip default not array type on StrictArrayParamDimFetchRector (#5259)
- [TypeDeclaration] Skip echo-ed on StrictArrayParamDimFetchRector (#5260)
- [Php71] Skip re-assigned as array on AssignArrayToStringRector (#5261)
- [Php71] Ensure re-assign after definition on AssignArrayToStringRector (#5262)
- [Renaming] Handle Rename no namespace to namespaced class with existing use statements (#5264)
- [Renaming][Performance] Re-structure check namespace only on renamed node got Namespace_ (#5265)
- [Php81] Skip increment/decrement on ReadOnlyPropertyRector (#5267)
- [TypeDeclaration] Deprecate TypedPropertyFromStrictGetterMethodReturnTypeRector as depends on missing context and creates invalid code (#5269)
- [AutoImport] Fixing auto import on multiple @\ usage (#5271)
- [Performance][Renaming] Use FullyQualified on RenameClassRector (#5272)
- [AutoImport] Handle complex usage of multiple @\ combined with other doc (#5273)
- [AutoImport] Handle multi @\ usage on multiline description (#5274)
- [Php80] Handle FQCN @\ usage on AnnotationToAttributeRector (#5240)
- [BetterPhpDocParser] Handle nested doctrine annotation with single quote content (#5281)
- [Privatization] Skip method with parent call (#5283)
- [BetterPhpDocParser] Use ORIG_NODE attribute on DoctrineAnnotationDecorator on handle @\ after generic (#5285)
- [Php80] Allow subnamespace from use statements support on AnnotationToAttributeRector (#5287)
Removed :skull:
- Remove deprecated Rector rules (#5270)
v0.18.10: Released Rector 0.18.10
Bugfixes :bug:
- [Renaming] FQN-ize namespaced import no namespace -> namespaced name on RenameClassRector (#5256)
v0.18.9: Released Rector 0.18.9
New Features 🥳
- [DeadCode]: Support functions in RemoveUnusedVariableAssignRector (#5249
- [Performance][PostRector] Only process FullyQualified on import Node name on NameImportingPostRector (#5255)
Bugfixes :bug:
- [AutoImport][Php70] Keep FQCN on conflict last name on TernaryToNullCoalescingRector (#5251)
- [Naming] Fix dotted name on generics bug in RenameVariableToMatchMethodCallReturnTypeRector (#5250)
- [Php73] Handle crash on JsonThrowOnErrorRector + SensitiveConstantNameRector (#5253)
- [CodingStyle] Refactor UseImportsAdder to return [FileWithoutNamespace] code on no namespaced code (#5254)
v0.18.8: Released Rector 0.18.8
Bugfixes :bug:
- Bump to reactphp/event-loop ^1.5 (#5246)
- [AutoImport] Skip auto import on no namespace used class on auto import enabled (#5247)
- [AutoImport][Renaming] Handle same last name no namespace just renamed auto import (#5248)
v0.18.7: Released Rector 0.18.7
New Features :partying_face:
- [CodeQuality] Add negated support on SingleInArrayToCompareRector (#5205)
- [Php83] Adds rule for adding Override attribute (#5170), Thanks @peterfox!
Bugfixes :bug:
- BinaryOpBetweenNumberAndStringRector don't trust phpdoc (#5199), Thanks @staabm!
- [CodeQuality][Php70] Handle LocallyCalledStaticMethodToNonStaticRector + ThisCallOnStaticMethodToStaticCallRector must change both method and caller (#5196)
- CountArrayToEmptyArrayComparisonRector: don't trust phpdoc (#5203), Thanks @staabm!
- [TypeDeclaration] Skip union false on NumericReturnTypeFromStrictScalarReturnsRector (#5204)
- [CodeQuality] Handle negated isset on IssetOnPropertyObjectToPropertyExistsRector on property not exists (#5206)
- [CodeQuality] Handle crash no scope on ThrowWithPreviousExceptionRector+OptionalParametersAfterRequiredRector (#5207)
- [NodeTypeResolver] Clean up TryCatch_ Scope filling (#5208)
- [PHPStanStaticTypeMapper] Clean up tweak false and bool check on UnionTypeMapper (#5209)
- [TypeDeclaration] Skip default numeric string on param int on ParamTypeByMethodCallTypeRector (#5210)
- [AutoImport] Handle AnnotationToAttributeRector + RenameClassRector then enable auto import (#5213)
- [Php80] Keep single quoted Argument Attribute on AnnotationToAttributeRector (#5214)
- [Php80] Keep single quoted key: 'value' on AnnotationToAttributeRector (#5215)
- [AutoImport] Ensure change to FullyQualified for Attribute on just changed from annotation (#5216)
- [Php52][Php70] Handle ContinueToBreakInSwitchRector + BreakNotInLoopOrSwitchToReturnRector (#5217)
- [Php80] Handle RenameClassRector+AnnotationToAttributeRector with auto import and existing attribute defined (#5219)
- [Testing] In case of failed test using multiple rules, show applied Rector rules to make easy to find them (#5222)
- [NodeTypeResolver] Handle nullable extended class on ->isObjectType() on DowngradeReflectionGetAttributesRector (#5224)
- NullableCompareToNullRector: Don't trust phpdocs (#5225), Thanks @staabm!
- [CodingStyle] Move ArraySpreadInsteadOfArrayMergeRector from php74 to codingstyle sets list (#5230)
- [PostRector] Ensure old classes in use statements cleaned up after rename attribuet on ClassRenamingPostRector (#5231)
- RestoreDefaultNullToNullableTypePropertyRector: skip
@readonlyphpdoc (#5233), Thanks @staabm! - [AutoImport] Handle DeclareStrictTypesRector on importNames() enabled on no namespace (#5241)
- [AutoImport] Allow auto import just renamed @var only docblock on RenameClassRector without removeUnusedImports() enabled (#5220)
- Remove rule DataProviderArrayItemsNewlinedRector.php (#5227), Thanks @eerison!
- Remove
ArraySpreadInsteadOfArrayMergeRectorfromLevelSetList::UP_TO_PHP_74(#5228), Thanks @staabm! - [DeadCode] Allow indirect duplicated grouping on RemoveDuplicatedCaseInSwitchRector (#5234)
- [DeadCode] Reduce double loop on RemoveDuplicatedCaseInSwitchRector (#5235)
- [DeadCode] Handle different indirect duplicated on RemoveDuplicatedCaseInSwitchRector (#5236)
- [DeadCode] Ensure change hasChanged flag on RemoveDuplicatedCaseInSwitchRector (#5237)
- [DeadCode] Handle repetitive jump equal case stmts on RemoveDuplicatedCaseInSwitchRector (#5239)
- Rename parameter variable to nextCase on RemoveDuplicatedCaseInSwitchRector (#5244)
v0.18.6: Released Rector 0.18.6
New Features and Changes :partying_face:
- [CodeQuality] Add CompleteMissingIfElseBracketRector (#5121)
- [CodeQuality] Add Else and ElseIf on CompleteMissingIfElseBracketRector (#5124)
- [TypeDeclaration] Utilize ClassMethodReturnTypeOverrideGuard on AddReturnTypeDeclarationFromYieldsRector (#5156)
- [DeadCode] Add RemoveUselessReturnExprInConstructRector (#5158)
- Improve UnaryPlus and UnaryMinus support in isDynamicExpr (#5177), Thanks @JulianCBC!
Bugfixes :bug:
- [CodeQuality] Skip VB style if endif on CompleteMissingIfElseBracketRector (#5122)
- [CodeQuality] Skip direct InlineHTML on CompleteMissingIfElseBracketRector (#5125)
- [CodeQuality] Skip spaced elseif cond on CompleteMissingIfElseBracketRector (#5126)
- [CodeQuality] Only check start from current Stmt token pos up until open parentheses on CompleteMissingIfElseBracketRector (#5127)
- [CodeQuality] Handle all if,elseif,else no bracket on CompleteMissingIfElseBracketRector (#5129)
- [CodeQuality] Skip VB style in complex HTML on CompleteMissingIfElseBracketRector (#5132)
- Skip
__construct()in BoolReturnTypeFromStrictScalarReturnsRector (#5133), Thanks @staabm! - [CodeQuality] Handle missing bracket on If only on CompleteMissingIfElseBracketRector (#5134)
- [CodeQuality] Handle on closure, anonymous function, method call on CompleteMissingIfElseBracketRector (#5135)
- [CodeQuality] Use its start token pos on Else_ on CompleteMissingIfElseBracketRector as no cond (#5136)
- [PhpParser] Reduce AstResolver complexity by move check fileName is null to parseFileNameToDecoratedNodes() (#5138)
- [TypeDeclaration] Handle Union with array type on ReturnUnionTypeRector (#5144)
- [TypeDeclaration] Handle union A extends B on ReturnUnionTypeRector (#5149)
- [CodeQuality] Fix missing parentheses on CombineIfRector (#5151)
- [TypeDeclaration] Utilize ClassMethodReturnTypeOverrideGuard on NumericReturnTypeFromStrictScalarReturnsRector (#5155)
- [CodeQuality] Handle negative and positive int/float on InlineConstructorDefaultToPropertyRector (#5159)
- [CodeQuality] Skip docblock usage on SimplifyBoolIdenticalTrueRector (#5161)
- [CodeQuality] Skip magic property fetch on IssetOnPropertyObjectToPropertyExistsRector (#5163)
- [PostRector] Reduce loop on ClassRenamingPostRector (#5174)
- [PostRector] Fix ClassRenamingPostRector return when no auto import replacement (#5175)
- [Renaming] Skip nullable object object|null on RenameMethodRector (#5181)
- [Downgradephp81][DowngradePhp80] Handle No scope crash on DowngradeSetAccessibleReflectionPropertyRector + DowngradeMatchToSwitchRector (#5183)
- [Naming] Skip DateTime from renaming, to keep convention of named dates (#5184)
- Skip new self in RenameVariableToMatchNewTypeRector (#5185)
- Skip DateTime in ExpectedNameResolver (#5186)
- [Naming] Skip all kinds of generators (#5187)
- [Renaming] Skip pointless names in RenameForeachValueVariableToMatchMethodCallReturnTypeRector (#5188)
- [Php70] Fix Php4 contructor not replaced with __construct() on php 7.4 environment (#5189)
- [Php74][Php81] Allow mixed key on ArraySpreadInsteadOfArrayMergeRector on php 8.1 version feature enabled (#5190)
- [TypeDeclaration] Handle skipped by file path on DeclareStrictTypesRector due to use beforeTraverse() (#5191)
- Fix phpstan notice $phpVersion on Rector\Config\RectorConfig::phpVersion() (#5193)
- [PHPStanStaticTypeMapper] Remove BoolUnionTypeAnalyzer on UnionTypeMapper (#5141)
- [DeadCode] Remove UnionType check on RecastingRemovalRector (#5142)
- Remove src/constants.php for T_ENUM and T_NAME_RELATIVE (#5143)
- [PHPStanStaticTypeMapper] Remove narrow string and int on UnionTypeMapper (#5145)
- [PHPStanStaticTypeMapper] Remove matchArrayTypes() on UnionTypeMapper (#5146)
- [DeadCode] Skip indirect variable definition on RemoveNonExistingVarAnnotationRector (#5152)
- [DeadCode] Skip key used in next stmt on RemoveUnusedForeachKeyRector (#5153)
- [DeadCode] Skip used in next For_/Foreach_ on RemoveDeadIfForeachForRector (#5154)
- [DeadCode] Handle file_get_contents() only remove variable on RemoveUnusedVariableAssignRector (#5162)
- [DeadCode] Skip count() on mixed on RemoveUnusedNonEmptyArrayBeforeForeachRector (#5160)
- RemoveUnusedNonEmptyArrayBeforeForeachRector: ignore phpdoc types (#5169), Thanks @staabm!
- RemoveUnusedNonEmptyArrayBeforeForeachRector: skip array dim fetch (#5166), Thanks @staabm!
- [DeadCode] Skip return false pseudo type in union on RemoveUselessReturnTagRector (#5172)
- [AutoImport] [Renaming] Skip remove used use statement on annotation during rename + auto import when no replacement on auto import (#5168)
- [DeadCode] Mirror comment on assign method call on RemoveUnusedVariableAssignRector (#5195)
v0.18.5: Released Rector 0.18.5
New Features and Improvements :partying_face:
- [build] Remove duplicated phpstan/phpstan from the build, as require by build package in composer.json already (https://github.com/rectorphp/rector-src/commit/51ed7b693fbfab70cf6a246bec4cc35f0ceacf7a)
- AddParamTypeBasedOnPHPUnitDataProviderRector: Check all data providers (#5068), Thanks @jlherren!
- AddParamTypeBasedOnPHPUnitDataProviderRector: Enhance existing rule to handle PHPUnit 10+ DataProvider Attribute (#4925), Thanks @mcampbell508!
- make PhpDocInfo::findByAnnotationClass() public to use in Symfony rules (#5103)
Bugfixes :bug:
- Feature/fix class annotation bad print (#5081), Thanks @etshy!
- [Performance] Avoid ReflectionProvider check function exists on NameImportingPostRector (#5083)
- InlineConstructorDefaultToPropertyRector Readonly Class (#5085), Thanks @beschoenen!
- [CodeQuality] Handle crash on variable variable on assign closure on OptionalParametersAfterRequiredRector (#5089)
- [NodeTypeResolver] Use isScalar()->yes() usage on StaticTypeAnalyzer and ScalarTypeComparator services (#5099)
- [ProcessAnalyzer] Ensure instanceof Stmt on check infinite loop on not yet has "created_by_rule" attribute (#5100)
- [DX] Rename shouldImportName() to shouldSkipName() on ClassNameImportSkipper (#5107)
- The ReturnTypeFromReturnNewRector must only handle new instances, to avoid leaking to everything (#5115)
- [Php80] Skip when already implements Stringable and has string return type on StringableForToStringRector (#5120)
Removed and Deprecated :skull:
- [DX] Remove CurrentFileProvider dependency on ChangedNodeScopeRefresher (#5087)
- [DX] Remove DependencyClassMethodDecorator as not used anymore due to paralel nature (#5094)
- [PostRector] Remove CurrentFileProvider on PostFileProcessor (#5097)
- [Comments] Remove unused copy Node object on CommentRemover (#5103)
- [Performance][AutoImport] Remove just renamed check on ClassNameImportSkipper (#5106)
- Deprecate CountOnNullRector as depends on previous context and require manual adjustment of previous result (#5101)
v0.18.4: Released Rector 0.18.4
New Features and Improvements :partying_face:
- Introducing Collectors :partying_face: - processing collected data + test case (#4970)
- Run tests on macos (#5019), Thanks @staabm!
- Move betterNodeFinder, valueResolver, phpDocInfoFactory dependencies from AbstractRector into rules (#5071)
- DX: Validate paths in RectorConfig->paths() (#5065), Thanks @staabm!
- [DX] Make PhpDocInfoFactory explicitly required in Rector rule constructor, if needed (#5051)
- [DX] Make ValueResolver explicitly required in Rector rules constructor if needed (#5052)
Bugfixes :bug:
- [DeadCode] RemoveDeadZeroAndOneOperationRector should not remove Constants (#4910), Thanks @TwanVermeulen!
- [PostRector] Fix unused import not removed on empty generic class name exists (#5012)
- [Parallel] Handle Spaced root project main script on parallel process (#4813)
- Fix TypedPropertyFromStrictConstructor* order (#5021), Thanks @staabm!
- [DX] Lower current node dependency - pass it directly to doc node parsing (#5023)
- [AutoImport] Fix conflict current namespace auto import (#5024)
- Simplify UseIdenticalOverEqualWithSameTypeRector (#5029), Thanks @staabm!
- [Performance][Testing] Use str_contains instead of regex in FixtureSplitter (#5030)
- Fix ArrayKeyFirstLastRector: Skip exection when pointer is changed (#5038), Thanks @scyzoryck!
- [TypeDeclaration] Handle fallback from param same type object on ReturnTypeFromReturnNewRector (#5039)
- [NodeTypeResolver] Use Scope->getType() on ArrayDimFetch on NodeTypeResolver::getNativeType() (#5037)
- [NodeTypeResolver] pull getType() on ArrayDimFetch when not mixed type from its variable native definition (#5056)
- [CodingStyle][EarlyReturn] Fix infinite if else on BinarySwitchToIfElseRector+RemoveAlwaysElseRector (#5057)
- [TypeDeclaration] Skip ArrayDimFetch for return and param types (#5059), Thanks @staabm!
- [NodeTypeResolver] Handle optional array shape on native function like with ArrayDimFetch (#5062)
- [Php80] Mirror switch comment to match to ChangeSwitchToMatchRector (#5072)
- [AutoImport] Skip case insensitive conflict defined class name on $rectorConfig->importNames() (#5076)
- Docblock fix on ShortNameResolver (#5077)
- [TypeDeclaration] Add return static property support on ReturnTypeFromStrictTypedPropertyRector (#5050)
Removed and Deprecated :skull:
- [Config] Remove asterisk support in import() for file, use explicit paths instead (#5010)
- [Performance] Remove regex check on open tag spaced check on FileProcessor (#5073)
- Deprecate TypedPropertyFromStrictConstructorReadonlyClassRector as based on docblock and public elements; use private elements and property promotion instead (#5049)
- Deprecate BinarySwitchToIfElseRector as opinionated to allow more suitable match() refactoring (#5064)
v0.18.3: Released Rector 0.18.3
New Features and Changes :partying_face:
- [BC] docblock changes in custom Rector rules now have to be reprinted directly in the rule -https://github.com/rectorphp/rector/issues/8201#issue-18941480955
- [TypeDeclaration] Add return empty string defined support on ReturnTypeFromStrictScalarReturnExprRector (#4919)
- [TypeDeclaration] Add fallback return direct array support on ReturnTypeFromStrictNewArrayRector (#4928)
- [TypeDeclaration] Add init assign method call support on ReturnTypeFromStrictNewArrayRector (#4929)
- [TypeDeclaration] Ensure ArrayType on ReturnTypeFromStrictNewArrayRector::shouldAddReturnArrayDocType() (#4932)
- [TypeDeclaration] Add test fixture return docblock on init method call assign as skipped on ReturnTypeFromStrictNewArrayRector (#4933)
- [TypeDeclaration] Add non native function return support on ReturnTypeFromStrictScalarReturnExprRector (#4934)
- BC: Separated regex matching in NodeNameResolver->isName() (#4951), Thanks @staabm!
- Add support for Custom Skip Voters ([#5
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
- any of the package files in this branch needs updating, or
- the branch becomes conflicted, or
- you click the rebase/retry checkbox if found above, or
- you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: composer.lock
Command failed: composer install --ignore-platform-req='ext-*' --ignore-platform-req='lib-*' --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins
Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Your lock file does not contain a compatible set of packages. Please run composer update.
Problem 1
- laminas/laminas-code is locked to version 4.5.1 and an update of this package was not requested.
- laminas/laminas-code 4.5.1 requires php >=7.4, <8.2 -> your php version (8.3.2) does not satisfy that requirement.
Problem 2
- phpspec/prophecy is locked to version v1.15.0 and an update of this package was not requested.
- phpspec/prophecy v1.15.0 requires php ^7.2 || ~8.0, <8.2 -> your php version (8.3.2) does not satisfy that requirement.
Problem 3
- laminas/laminas-code 4.5.1 requires php >=7.4, <8.2 -> your php version (8.3.2) does not satisfy that requirement.
- friendsofphp/proxy-manager-lts v1.0.8 requires laminas/laminas-code ~3.4.1|^4.0 -> satisfiable by laminas/laminas-code[4.5.1].
- friendsofphp/proxy-manager-lts is locked to version v1.0.8 and an update of this package was not requested.