Skip to content

Released Rector 0.15.24

Compare
Choose a tag to compare
@TomasVotruba TomasVotruba released this 08 Apr 11:00
· 2360 commits to main since this release

New Features 馃コ

  • Performance: Improve node name resolver performance (#3506), Thanks @keulinho!
  • [CodeQuality] Add SwitchTrueToIfRector (#3535)
  • [CodeQuality] Add cast scalar support on ReturnTypeFromStrictScalarRector (#3544)
  • Improve ArraySpreadInsteadOfArrayMergeRector (#3551), Thanks @yguedidi!
  • Performance: reduce parent attribute usage on BetterNodeFinder (#3504)
  • Performance: using findFirst() when possible at BetterNodeFinder (#3505)
  • Performance: use direct find() instead of lookup all nodes then filter on BetterNodeFinder (#3507)
  • Performance: Use faster hashing algo for cache key generation (#3508), Thanks @keulinho!

Bugfixes 馃悰

  • Add not null compare to FlipTypeControlToUseExclusiveTypeRector (#3513)
  • [CodeQuality] Skip static class const fetch on InlineConstructorDefaultToPropertyRector (#3510)
  • [CodingStyle] Make EncapsedStringsToSprintfRector work with two string concat (#3515)
  • [CodeQuality] Handle multiple ifs on SimplifyIfExactValueReturnValueRector (#3527)
  • [NodeManipulator] Reduce parent attribute usage on VariableManipulator (#3528)
  • [NodeTypeResolver] Make NodeTraverser as property on PHPStanNodeScopeResolver (#3533)
  • [NodeTypeResolver] Make NodeTraverser as property on NodeScopeAndMetadataDecorator (#3532)
  • [NodeAnalyzer] Use PHPStan ClassReflection to detect anonymous class on ClassAnalyzer (#3543)
  • [Php81] Merge attributes on NewInInitializerRector (#3546)
  • [Php81] Handle assign op append on ReadOnlyPropertyRector (#3552)
  • [CodeQuality] Skip empty cases on SwitchTrueToIfRector (#3556)
  • RemoveNonExistingVarAnnotationRector: Allow return annotations (#3534), Thanks @jlherren!
  • [PostRector] Skip remove unused used at @see for Generic tag (#3562)
  • [PostRector] Skip remove unused use on used as ConstFetchNode, eg: TypeKind::* (#3560)

Removed 馃拃

  • [CodeQuality] Remove next node attribute usage on SimplifyIfExactValueReturnValueRector (#3511)
  • [CodingStyle] Remove previous node attribute on WrapEncapsedVariableInCurlyBracesRector (#3512)
  • [CodeQuality] Remove next node attribute usage on SimplifyIfNotNullReturnRector (#3517)
  • Remove deprecated @noRector warning (#3518)
  • [CodingStyle] Remove next node attribute on NewlineAfterStatementRector (#3525)
  • [Privatization] Remove parent attribute usage on PrivatizeFinalClassMethodRector (#3526)
  • [NodeTypeResolver] Remove NodeScopeAndMetadataDecorator::decorateStmtsFromString() method (#3530)
  • [DeadCode] Remove previous attribute usage on RemoveDeadConditionAboveReturnRector (#3538)
  • [Php70] Remove previous attribute usage on ReduceMultipleDefaultSwitchRector (#3537)
  • [CodingStyle] Remove parent attribute usage on RemoveFinalFromConstRector (#3536)
  • [CodingStyle] Remove previous node attribute on TernaryConditionVariableAssignmentRector (#3540)
  • [DeadCode] Remove previous and parent attribute usage on RemoveNullPropertyInitializationRector (#3541)
  • [DeadCode] Remove property comment same line on RemoveUnusedPrivatePropertyRector (#3547)
  • [PSR4] Remove clone $node on NormalizeNamespaceByPSR4ComposerAutoloadRector (#3553)
  • [PSR4] Remove clone $node on PseudoNamespaceToNamespaceRector (#3554)
  • [Tests] Remove RunTestsInSeparateProcesses in rules-tests (#3555)
  • [NodeRemover] Use return null after $this->removeNode() (#3558)
  • [Php73] Remove next node attribute usage on ArrayKeyFirstLastRector (#3559)