github rectorphp/rector 1.1.1
Released Rector 1.1.1

8 days ago

[Performance] Fix huge performance hit by reverting children class detection (#5995) - fixes #8679, #8638, #8637


New Rules

  • [TypeDeclaration] Add ReturnTypeFromReturnCastRector (#5905)
  • [TypeDeclaration] Add ReturnTypeFromSymfonySerializerRector (#5908)
  • [TypeDeclaration] Add TypedPropertyFromJMSSerializerAttributeTypeRector (#5909)
  • [TypeDeclaration] Add AddTypeFromResourceDocblockRector (#5915)
  • [Php74] Add HebrevcToNl2brHebrevRector (#5977)
  • [Php74] Add RestoreIncludePathToIniRestoreRector (#5973)
  • [Carbon] Init set to migrate DateTime to Carbon (#5868)
  • [Carbon] Add immutable support to other rules (#5896)
  • Convert DateTimeImmutable to CarbonImmutable (#5895)
  • Convert time() to Carbon::now()->timestamp (#5901), Thanks @kylekatarnls!

New Features and DX improvements 🥳

  • Add code quality levels (#5910), Thanks @carlos-granados!
  • [DX] Introduce set providers, to enable package + version based set registration (#5976)
  • [DX] Report rules that registered in withSkip() but never registered in withRules() (#5919)
  • [Set] Add new rector-preset set to have opiniated rector rules that can be enabled in rector-src and its extension (#5924)
  • [DeadCode] Add RemoveUnusedPublicMethodParameterRector (#5925)
  • [TypeDeclaration] Handle double declare(strict_types=1) addition on DeclareStrictTypesRector + IncreaseDeclareStrictTypesRector (#5928)
  • [CodingStyle][Php80] Add join func call support on ConsistentImplodeRector (#5958)
  • [CodeQuality] Add support for (), {}, [], <> delimiter on RegexPatternDetector (#5957)
  • [TypeDeclaration] Add Static Call support on AddMethodCallBasedStrictParamTypeRector (#5960)
  • [Config] Add withPhpPolyfill() method to load php polyfill set on RectorConfigBuilder (#5983)
  • [DX] Add ->withPhpXSets() for PHP 7.4 and lower, improve ->withPreparedSets() (#5984)
  • [config] Disable parallel on --debug (#5904)
  • [Php80] Skip mixed doc with description and valid doc on MixedTypeRector (#5906)
  • [DX] Add withPhpPolyfills() method to add polyfill rules (#5981) rectorphp/rector-src#5983
  • [DX] Ommit static functions/closure from coding-style, as often ignored and depends on personal preference (#5916)
  • [DX] Ommit post-inc to pre-inc rule from coding-style as too opinionated (#5917)
  • [DX] Remove UseIncrementAssignRector from coding-style set, as often ignored (#5920)

Bugfixes 🐛

  • [AutoImport] No need RenamedClassesDataCollector usage on UsesClassNameImportSkipVoter (#5921)
  • [Php81] Skip private method from instantiated class on FirstClassCallableRector (#5929)
  • [NodeTypeCorrector] Directly use StringType on Intersection of strings on AccessoryNonEmptyStringTypeCorrector (#5933)
  • [CodeQuality] Allow check in current Class_ with multiple props on CompleteDynamicPropertiesRector (#5938)
  • [Naming] Handle rename property with only comment, without @var doc on RenamePropertyToMatchTypeRector (#5945)
  • Remove the renaming of apache_request_headers (#5943), Thanks @rhuijts!
  • [Naming] Handle nullable object @var docblock on RenamePropertyToMatchTypeRector (#5946)
  • [Php81] Skip param variable used in next stmt after coalesce on NewInInitializerRector (#5971)
  • [Php71] Skip call abstract method on RemoveExtraParametersRector (#5930)
  • [TypeDeclaration] Do not remove docblock with description on MergeDateTimePropertyTypeDeclarationRector (#5931)
  • [DeadCode] Remove param docblock on RemoveUnusedPromotedPropertyRector when exists (#5936)
  • [Cleanup] Remove deprecated AttributeKey::PARENT_NODE, remove deprecated NodeNameResolver::isCaseSensitiveName() (#5939)
  • [NodeTypeResolver] Remove Property->type instanceof Node check on NodeTypeResolver->getType() (#5947)
  • [BetterPhpDocParser] Remove unnecessary PrivatesAccessor usage on BetterTokenIterator and TokenIteratorFactory (#5950)
  • [DeadCode] Skip dynamic variable on RemoveUnusedVariableAssignRector (#5964)
  • [DeadCode] Reduce loop for used in next stmt on RemoveUnusedVariableAssignRector (#5969)

Removed and Deprecated 💀

  • Remove deprecated and empty FinalizeClassesWithoutChildrenRector + FinalizePublicClassConstantRector (#5980)
  • [DX] Soft-deprecate CallableThisArrayToAnonymousFunctionRector, as FirstClassCallableRector handles the same case better (#5918)

Don't miss a new rector release

NewReleases is sending notifications on new releases.