[Order] Move ClassLike and Class_ rules into correct namespaces (#3969)

Co-authored-by: rector-bot <tomas@getrector.org>
This commit is contained in:
dobryy 2020-08-16 13:42:22 +02:00 committed by GitHub
parent d893ee7209
commit 003afc1435
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
25 changed files with 193 additions and 151 deletions

View File

@ -3,12 +3,12 @@
declare(strict_types=1);
use Rector\Order\Rector\Class_\OrderClassConstantsByIntegerValueRector;
use Rector\Order\Rector\Class_\OrderPrivateMethodsByUseRector;
use Rector\Order\Rector\Class_\OrderPropertyByComplexityRector;
use Rector\Order\Rector\Class_\OrderConstantsByVisibilityRector;
use Rector\Order\Rector\Class_\OrderPublicInterfaceMethodRector;
use Rector\Order\Rector\ClassLike\OrderConstantsByVisibilityRector;
use Rector\Order\Rector\ClassLike\OrderMethodsByVisibilityRector;
use Rector\Order\Rector\ClassLike\OrderPrivateMethodsByUseRector;
use Rector\Order\Rector\ClassLike\OrderPropertiesByVisibilityRector;
use Rector\Order\Rector\ClassLike\OrderPropertyByComplexityRector;
use Rector\Order\Rector\ClassMethod\OrderConstructorDependenciesByTypeAlphabeticallyRector;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

View File

@ -1,4 +1,4 @@
# All 557 Rectors Overview
# All 559 Rectors Overview
- [Projects](#projects)
---
@ -36,10 +36,10 @@
- [NetteTesterToPHPUnit](#nettetestertophpunit) (3)
- [NetteToSymfony](#nettetosymfony) (9)
- [NetteUtilsCodeQuality](#netteutilscodequality) (1)
- [Order](#order) (8)
- [Order](#order) (9)
- [PHPOffice](#phpoffice) (14)
- [PHPStan](#phpstan) (3)
- [PHPUnit](#phpunit) (36)
- [PHPUnit](#phpunit) (37)
- [PHPUnitSymfony](#phpunitsymfony) (1)
- [PSR4](#psr4) (3)
- [Performance](#performance) (1)
@ -7934,8 +7934,8 @@ Order class constant order by their integer value
### `OrderConstantsByVisibilityRector`
- class: [`Rector\Order\Rector\ClassLike\OrderConstantsByVisibilityRector`](/../master/rules/order/src/Rector/ClassLike/OrderConstantsByVisibilityRector.php)
- [test fixtures](/../master/rules/order/tests/Rector/ClassLike/OrderConstantsByVisibilityRector/Fixture)
- class: [`Rector\Order\Rector\Class_\OrderConstantsByVisibilityRector`](/../master/rules/order/src/Rector/Class_/OrderConstantsByVisibilityRector.php)
- [test fixtures](/../master/rules/order/tests/Rector/Class_/OrderConstantsByVisibilityRector/Fixture)
Orders constants by visibility
@ -7977,6 +7977,28 @@ Order __constructor dependencies by type A-Z
<br><br>
### `OrderFirstLevelClassStatementsRector`
- class: [`Rector\Order\Rector\ClassLike\OrderFirstLevelClassStatementsRector`](/../master/rules/order/src/Rector/ClassLike/OrderFirstLevelClassStatementsRector.php)
- [test fixtures](/../master/rules/order/tests/Rector/ClassLike/OrderFirstLevelClassStatementsRector/Fixture)
Orders first level Class statements
```diff
final class SomeClass
{
+ use TraitName;
+ private const CONST_NAME = 'constant_value';
+ protected $propertyName;
public function functionName();
- protected $propertyName;
- private const CONST_NAME = 'constant_value';
- use TraitName;
}
```
<br><br>
### `OrderMethodsByVisibilityRector`
- class: [`Rector\Order\Rector\ClassLike\OrderMethodsByVisibilityRector`](/../master/rules/order/src/Rector/ClassLike/OrderMethodsByVisibilityRector.php)
@ -7998,8 +8020,8 @@ Orders method by visibility
### `OrderPrivateMethodsByUseRector`
- class: [`Rector\Order\Rector\Class_\OrderPrivateMethodsByUseRector`](/../master/rules/order/src/Rector/Class_/OrderPrivateMethodsByUseRector.php)
- [test fixtures](/../master/rules/order/tests/Rector/Class_/OrderPrivateMethodsByUseRector/Fixture)
- class: [`Rector\Order\Rector\ClassLike\OrderPrivateMethodsByUseRector`](/../master/rules/order/src/Rector/ClassLike/OrderPrivateMethodsByUseRector.php)
- [test fixtures](/../master/rules/order/tests/Rector/ClassLike/OrderPrivateMethodsByUseRector/Fixture)
Order private methods in order of their use
@ -8047,8 +8069,8 @@ Orders properties by visibility
### `OrderPropertyByComplexityRector`
- class: [`Rector\Order\Rector\Class_\OrderPropertyByComplexityRector`](/../master/rules/order/src/Rector/Class_/OrderPropertyByComplexityRector.php)
- [test fixtures](/../master/rules/order/tests/Rector/Class_/OrderPropertyByComplexityRector/Fixture)
- class: [`Rector\Order\Rector\ClassLike\OrderPropertyByComplexityRector`](/../master/rules/order/src/Rector/ClassLike/OrderPropertyByComplexityRector.php)
- [test fixtures](/../master/rules/order/tests/Rector/ClassLike/OrderPropertyByComplexityRector/Fixture)
Order properties by complexity, from the simplest like scalars to the most complex, like union or collections
@ -8654,6 +8676,25 @@ Change `assertEquals()/assertNotEquals()` method parameters to new specific alte
<br><br>
### `AssertEqualsToSameRector`
- class: [`Rector\PHPUnit\Rector\MethodCall\AssertEqualsToSameRector`](/../master/rules/phpunit/src/Rector/MethodCall/AssertEqualsToSameRector.php)
- [test fixtures](/../master/rules/phpunit/tests/Rector/MethodCall/AssertEqualsToSameRector/Fixture)
Turns `assertEquals()` into stricter `assertSame()` for scalar values in PHPUnit TestCase
```diff
-$this->assertEquals(2, $result, "message");
+$this->assertSame(2, $result, "message");
```
```diff
-$this->assertEquals($aString, $result, "message");
+$this->assertSame($aString, $result, "message");
```
<br><br>
### `AssertFalseStrposToContainsRector`
- class: [`Rector\PHPUnit\Rector\MethodCall\AssertFalseStrposToContainsRector`](/../master/rules/phpunit/src/Rector/MethodCall/AssertFalseStrposToContainsRector.php)

View File

@ -74,19 +74,6 @@ trait ArrayPartPhpDocTagPrinterTrait
);
}
private function isValueWithoutQuotes(?string $key, TagValueNodeConfiguration $tagValueNodeConfiguration): bool
{
if ($key === null) {
return false;
}
if (! array_key_exists($key, $tagValueNodeConfiguration->getKeysByQuotedStatus())) {
return false;
}
return ! $tagValueNodeConfiguration->getKeysByQuotedStatus()[$key];
}
private function createKeyPart(?string $key, TagValueNodeConfiguration $tagValueNodeConfiguration): string
{
if ($key === null) {
@ -100,6 +87,19 @@ trait ArrayPartPhpDocTagPrinterTrait
return $key . '=';
}
private function isValueWithoutQuotes(?string $key, TagValueNodeConfiguration $tagValueNodeConfiguration): bool
{
if ($key === null) {
return false;
}
if (! array_key_exists($key, $tagValueNodeConfiguration->getKeysByQuotedStatus())) {
return false;
}
return ! $tagValueNodeConfiguration->getKeysByQuotedStatus()[$key];
}
private function quoteKeys(array $item, string $key, string $json, string $originalContent): string
{
foreach (array_keys($item) as $itemKey) {

View File

@ -2,12 +2,14 @@
declare(strict_types=1);
namespace Rector\Order\Rector\Class_;
namespace Rector\Order\Rector\ClassLike;
use PhpParser\Node;
use PhpParser\Node\Expr\MethodCall;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\ClassLike;
use PhpParser\Node\Stmt\ClassMethod;
use PhpParser\Node\Stmt\Interface_;
use Rector\Core\Exception\ShouldNotHappenException;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\RectorDefinition\CodeSample;
@ -15,7 +17,7 @@ use Rector\Core\RectorDefinition\RectorDefinition;
use Rector\Order\StmtOrder;
/**
* @see \Rector\Order\Tests\Rector\Class_\OrderPrivateMethodsByUseRector\OrderPrivateMethodsByUseRectorTest
* @see \Rector\Order\Tests\Rector\ClassLike\OrderPrivateMethodsByUseRector\OrderPrivateMethodsByUseRectorTest
*/
final class OrderPrivateMethodsByUseRector extends AbstractRector
{
@ -84,14 +86,18 @@ PHP
*/
public function getNodeTypes(): array
{
return [Class_::class];
return [ClassLike::class];
}
/**
* @param Class_ $node
* @param ClassLike $node
*/
public function refactor(Node $node): ?Node
{
if ($node instanceof Interface_) {
return null;
}
[$desiredPrivateMethodCallOrder, $privateClassMethodsByKey] = $this->getPrivateMethodCallOrderAndClassMethods(
$node
);
@ -132,21 +138,21 @@ PHP
/**
* @return array<int, array<int, string>>
*/
private function getPrivateMethodCallOrderAndClassMethods(Class_ $class): array
private function getPrivateMethodCallOrderAndClassMethods(ClassLike $classLike): array
{
return [$this->getLocalPrivateMethodCallOrder($class), $this->resolvePrivateClassMethods($class)];
return [$this->getLocalPrivateMethodCallOrder($classLike), $this->resolvePrivateClassMethods($classLike)];
}
/**
* @return array<int,string>
*/
private function getLocalPrivateMethodCallOrder(Class_ $class): array
private function getLocalPrivateMethodCallOrder(ClassLike $classLike): array
{
$localPrivateMethodCallInOrder = [];
$this->traverseNodesWithCallable($class->getMethods(), function (Node $node) use (
$this->traverseNodesWithCallable($classLike->getMethods(), function (Node $node) use (
&$localPrivateMethodCallInOrder,
$class
$classLike
) {
if (! $node instanceof MethodCall) {
return null;
@ -161,7 +167,7 @@ PHP
return null;
}
$classMethod = $class->getMethod($methodName);
$classMethod = $classLike->getMethod($methodName);
if ($classMethod === null) {
return null;
}
@ -179,11 +185,11 @@ PHP
/**
* @return array<int, string>
*/
private function resolvePrivateClassMethods(Class_ $class): array
private function resolvePrivateClassMethods(ClassLike $classLike): array
{
$privateClassMethods = [];
foreach ($class->stmts as $key => $classStmt) {
foreach ($classLike->stmts as $key => $classStmt) {
if (! $classStmt instanceof ClassMethod) {
continue;
}

View File

@ -2,10 +2,11 @@
declare(strict_types=1);
namespace Rector\Order\Rector\Class_;
namespace Rector\Order\Rector\ClassLike;
use PhpParser\Node;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\ClassLike;
use PhpParser\Node\Stmt\Interface_;
use PhpParser\Node\Stmt\Property;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\RectorDefinition\CodeSample;
@ -14,7 +15,7 @@ use Rector\Order\PropertyRanker;
use Rector\Order\StmtOrder;
/**
* @see \Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\OrderPropertyByComplexityRectorTest
* @see \Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\OrderPropertyByComplexityRectorTest
*/
final class OrderPropertyByComplexityRector extends AbstractRector
{
@ -99,14 +100,18 @@ PHP
*/
public function getNodeTypes(): array
{
return [Class_::class];
return [ClassLike::class];
}
/**
* @param Class_ $node
* @param ClassLike $node
*/
public function refactor(Node $node): ?Node
{
if ($node instanceof Interface_) {
return null;
}
$propertyByVisibilityByPosition = $this->resolvePropertyByVisibilityByPosition($node);
foreach ($propertyByVisibilityByPosition as $propertyByPosition) {
@ -135,10 +140,10 @@ PHP
/**
* @return Property[][]
*/
private function resolvePropertyByVisibilityByPosition(Class_ $class): array
private function resolvePropertyByVisibilityByPosition(ClassLike $classLike): array
{
$propertyByVisibilityByPosition = [];
foreach ($class->stmts as $position => $classStmt) {
foreach ($classLike->stmts as $position => $classStmt) {
if (! $classStmt instanceof Property) {
continue;
}

View File

@ -2,13 +2,11 @@
declare(strict_types=1);
namespace Rector\Order\Rector\ClassLike;
namespace Rector\Order\Rector\Class_;
use PhpParser\Node;
use PhpParser\Node\Stmt\Class_;
use PhpParser\Node\Stmt\ClassConst;
use PhpParser\Node\Stmt\ClassLike;
use PhpParser\Node\Stmt\Interface_;
use PhpParser\Node\Stmt\Trait_;
use Rector\Core\Rector\AbstractRector;
use Rector\Core\RectorDefinition\CodeSample;
use Rector\Core\RectorDefinition\RectorDefinition;
@ -16,7 +14,7 @@ use Rector\Order\StmtOrder;
use Rector\Order\StmtVisibilitySorter;
/**
* @see \Rector\Order\Tests\Rector\ClassLike\OrderConstantsByVisibilityRector\OrderConstantsByVisibilityRectorTest
* @see \Rector\Order\Tests\Rector\Class_\OrderConstantsByVisibilityRector\OrderConstantsByVisibilityRectorTest
*/
final class OrderConstantsByVisibilityRector extends AbstractRector
{
@ -68,22 +66,14 @@ PHP
*/
public function getNodeTypes(): array
{
return [ClassLike::class];
return [Class_::class];
}
/**
* @param ClassLike $node
* @param Class_ $node
*/
public function refactor(Node $node): ?Node
{
if ($node instanceof Interface_) {
return null;
}
if ($node instanceof Trait_) {
return null;
}
$currentPropertiesOrder = $this->stmtOrder->getStmtsOfTypeOrder($node, ClassConst::class);
$propertiesInDesiredOrder = $this->getPropertiesInDesiredPosition($node);
@ -95,9 +85,9 @@ PHP
/**
* @return string[]
*/
private function getPropertiesInDesiredPosition(ClassLike $classLike): array
private function getPropertiesInDesiredPosition(Class_ $class): array
{
$constants = $this->stmtVisibilitySorter->sortConstants($classLike);
$constants = $this->stmtVisibilitySorter->sortConstants($class);
return array_keys($constants);
}

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPrivateMethodsByUseRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPrivateMethodsByUseRector\Fixture;
class DifferentAmountOfMethodsClass
{

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPrivateMethodsByUseRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPrivateMethodsByUseRector\Fixture;
class SomeClass
{
@ -23,7 +23,7 @@ class SomeClass
-----
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPrivateMethodsByUseRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPrivateMethodsByUseRector\Fixture;
class SomeClass
{

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPrivateMethodsByUseRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPrivateMethodsByUseRector\Fixture;
class MultiCall
{
@ -28,7 +28,7 @@ class MultiCall
-----
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPrivateMethodsByUseRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPrivateMethodsByUseRector\Fixture;
class MultiCall
{

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPrivateMethodsByUseRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPrivateMethodsByUseRector\Fixture;
use PhpParser\Node;
use PhpParser\Node\Param;
@ -84,7 +84,7 @@ class MultipleRunsClass
-----
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPrivateMethodsByUseRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPrivateMethodsByUseRector\Fixture;
use PhpParser\Node;
use PhpParser\Node\Param;

View File

@ -2,11 +2,11 @@
declare(strict_types=1);
namespace Rector\Order\Tests\Rector\Class_\OrderPrivateMethodsByUseRector;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPrivateMethodsByUseRector;
use Iterator;
use Rector\Core\Testing\PHPUnit\AbstractRectorTestCase;
use Rector\Order\Rector\Class_\OrderPrivateMethodsByUseRector;
use Rector\Order\Rector\ClassLike\OrderPrivateMethodsByUseRector;
use Symplify\SmartFileSystem\SmartFileInfo;
final class OrderPrivateMethodsByUseRectorTest extends AbstractRectorTestCase

View File

@ -1,9 +1,9 @@
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Fixture;
use Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Source\AnotherSimpleType;
use Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Source\ComplexType;
use Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Source\AnotherSimpleType;
use Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Source\ComplexType;
class ComplexTypes
{
@ -64,10 +64,10 @@ class ComplexTypes
-----
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Fixture;
use Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Source\AnotherSimpleType;
use Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Source\ComplexType;
use Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Source\AnotherSimpleType;
use Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Source\ComplexType;
class ComplexTypes
{

View File

@ -1,8 +1,8 @@
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Fixture;
use Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Source\ComplexType;
use Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Source\ComplexType;
class SomeClass
{
@ -26,9 +26,9 @@ class SomeClass
-----
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Fixture;
use Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Source\ComplexType;
use Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Source\ComplexType;
class SomeClass
{

View File

@ -0,0 +1,18 @@
<?php
namespace Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Fixture;
use Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Source\ComplexType;
class SkipCorrect
{
/**
* @var int
*/
private $startIndex;
/**
* @var \DateTime|null
*/
private $startBracketIndex;
}

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Fixture;
class VisibilityClass
{
@ -24,7 +24,7 @@ class VisibilityClass
-----
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Fixture;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Fixture;
class VisibilityClass
{

View File

@ -2,11 +2,11 @@
declare(strict_types=1);
namespace Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector;
namespace Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector;
use Iterator;
use Rector\Core\Testing\PHPUnit\AbstractRectorTestCase;
use Rector\Order\Rector\Class_\OrderPropertyByComplexityRector;
use Rector\Order\Rector\ClassLike\OrderPropertyByComplexityRector;
use Symplify\SmartFileSystem\SmartFileInfo;
final class OrderPropertyByComplexityRectorTest extends AbstractRectorTestCase

View File

@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Source;
final class AnotherSimpleType
{
}

View File

@ -0,0 +1,10 @@
<?php
declare(strict_types=1);
namespace Rector\Order\Tests\Rector\ClassLike\OrderPropertyByComplexityRector\Source;
final class ComplexType
{
}

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Order\Tests\Rector\ClassLike\OrderConstantsByVisibilityRector\Fixture;
namespace Rector\Order\Tests\Rector\Class_\OrderConstantsByVisibilityRector\Fixture;
abstract class AbstractClass
{
@ -13,7 +13,7 @@ abstract class AbstractClass
-----
<?php
namespace Rector\Order\Tests\Rector\ClassLike\OrderConstantsByVisibilityRector\Fixture;
namespace Rector\Order\Tests\Rector\Class_\OrderConstantsByVisibilityRector\Fixture;
abstract class AbstractClass
{

View File

@ -1,6 +1,6 @@
<?php
namespace Rector\Order\Tests\Rector\ClassLike\OrderConstantsByVisibilityRector\Fixture;
namespace Rector\Order\Tests\Rector\Class_\OrderConstantsByVisibilityRector\Fixture;
final class SomeClass
{
@ -13,7 +13,7 @@ final class SomeClass
-----
<?php
namespace Rector\Order\Tests\Rector\ClassLike\OrderConstantsByVisibilityRector\Fixture;
namespace Rector\Order\Tests\Rector\Class_\OrderConstantsByVisibilityRector\Fixture;
final class SomeClass
{

View File

@ -2,10 +2,10 @@
declare(strict_types=1);
namespace Rector\Order\Tests\Rector\ClassLike\OrderConstantsByVisibilityRector;
namespace Rector\Order\Tests\Rector\Class_\OrderConstantsByVisibilityRector;
use Rector\Core\Testing\PHPUnit\AbstractRectorTestCase;
use Rector\Order\Rector\ClassLike\OrderConstantsByVisibilityRector;
use Rector\Order\Rector\Class_\OrderConstantsByVisibilityRector;
use Symplify\SmartFileSystem\SmartFileInfo;
final class OrderConstantsByVisibilityRectorTest extends AbstractRectorTestCase

View File

@ -1,18 +0,0 @@
<?php
namespace Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Fixture;
use Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Source\ComplexType;
class SkipCorrect
{
/**
* @var int
*/
private $startIndex;
/**
* @var \DateTime|null
*/
private $startBracketIndex;
}

View File

@ -1,10 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Source;
final class AnotherSimpleType
{
}

View File

@ -1,10 +0,0 @@
<?php
declare(strict_types=1);
namespace Rector\Order\Tests\Rector\Class_\OrderPropertyByComplexityRector\Source;
final class ComplexType
{
}

View File

@ -132,29 +132,6 @@ trait ComplexRemovalTrait
$this->removeNode($property);
}
private function removeAssignNode(Assign $assign): void
{
$currentStatement = $assign->getAttribute(AttributeKey::CURRENT_STATEMENT);
$this->addLivingCodeBeforeNode($assign->var, $currentStatement);
/** @var Assign $assign */
$parent = $assign->getAttribute(AttributeKey::PARENT_NODE);
if ($parent instanceof Expression) {
$this->addLivingCodeBeforeNode($assign->expr, $currentStatement);
$this->removeNode($assign);
} else {
$this->nodesToReplaceCollector->addReplaceNodeWithAnotherNode($assign, $assign->expr);
$this->rectorChangeCollector->notifyNodeFileInfo($assign->expr);
}
}
private function addLivingCodeBeforeNode(Expr $expr, Node $addBeforeThisNode): void
{
foreach ($this->livingCodeManipulator->keepLivingCodeFromExpr($expr) as $expr) {
$this->addNodeBeforeNode(new Expression($expr), $addBeforeThisNode);
}
}
/**
* @param MethodCall|StaticCall $node
*/
@ -205,6 +182,22 @@ trait ComplexRemovalTrait
return $assign;
}
private function removeAssignNode(Assign $assign): void
{
$currentStatement = $assign->getAttribute(AttributeKey::CURRENT_STATEMENT);
$this->addLivingCodeBeforeNode($assign->var, $currentStatement);
/** @var Assign $assign */
$parent = $assign->getAttribute(AttributeKey::PARENT_NODE);
if ($parent instanceof Expression) {
$this->addLivingCodeBeforeNode($assign->expr, $currentStatement);
$this->removeNode($assign);
} else {
$this->nodesToReplaceCollector->addReplaceNodeWithAnotherNode($assign, $assign->expr);
$this->rectorChangeCollector->notifyNodeFileInfo($assign->expr);
}
}
private function removeConstructorDependency(Assign $assign): void
{
$methodName = $assign->getAttribute(AttributeKey::METHOD_NAME);
@ -231,4 +224,11 @@ trait ComplexRemovalTrait
$this->removeNode($param);
}
}
private function addLivingCodeBeforeNode(Expr $expr, Node $addBeforeThisNode): void
{
foreach ($this->livingCodeManipulator->keepLivingCodeFromExpr($expr) as $expr) {
$this->addNodeBeforeNode(new Expression($expr), $addBeforeThisNode);
}
}
}