Rector: Runtime variable converted to constant

Created on 6 Jun 2020  ยท  10Comments  ยท  Source: rectorphp/rector

Bug Report

Thanks for this amazing project. Here is a bug:

| Subject | Details |
| :------------- | :---------------------------------------------------------------|
| Rector version | v0.7.29 |
| Installed as | composer dependency |

The following code gets converted into a class constant:

public function blabla()
{
    $testsBaseDir = "{$this->testSuite->rootPath}/tests";
}

// Gets converted to:

private const TESTS_BASE_DIR = "{public $this->testSuite->rootPath}/tests";

All 10 comments

What command do you run?

rector process src

I need more information to reproduce.

  • What rector.yaml do you have?
  • What si the full rector output on the PHP code you provided?
  • What is the output with --debug?

> What rector.yaml do you have?

# rector.yaml
parameters:
    sets:
        - 'action-injection-to-constructor-injection'
        - 'array-str-functions-to-static-call'
        - 'celebrity'
        - 'doctrine'
        - 'phpstan'
        - 'phpunit-code-quality'
        - 'solid'
        - 'early-return'
        - 'doctrine-code-quality'
        - 'code-quality'
        - 'php71'
        - 'php72'
        - 'php73'

> What si the full rector output on the PHP code you provided?

โžœ ./vendor/bin/rector process src
Rector v0.7.29
Config file: rector.yaml

 3/3 [โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“โ–“] 100%

1 file with changes
===================

1) src/Plugin.php

    ---------- begin diff ----------
--- Original
+++ New
@@ -23,6 +23,8 @@

     /** @var TestSuite */
     private $testSuite;
+    private const TESTS_BASE_DIR = "{$this->testSuite->rootPath}/tests";
+    private const TO_PATH = "{self::TESTS_BASE_DIR}/$to";

     public function __construct(TestSuite $testSuite, OutputInterface $output)
     {
@@ -43,33 +45,28 @@

     private function init(): void
     {
-        $testsBaseDir = "{$this->testSuite->rootPath}/tests";
-
-        if (!is_dir($testsBaseDir)) {
-            if (!mkdir($testsBaseDir) && !is_dir($testsBaseDir)) {
-                throw ShouldNotHappen::fromMessage("Directory `{$testsBaseDir}` was not created");
+        if (!is_dir(self::TESTS_BASE_DIR)) {
+            if (!mkdir(self::TESTS_BASE_DIR) && !is_dir(self::TESTS_BASE_DIR)) {
+                throw ShouldNotHappen::fromMessage("Directory `{{self::TESTS_BASE_DIR}}` was not created");
             }

             $this->output->writeln('Created `tests` directory');
         }
-
         foreach (self::STUBS as $from => $to) {
             $fromPath = __DIR__ . "/../stubs/$from";
-            $toPath   = "$testsBaseDir/$to";

-            if (file_exists($toPath)) {
+            if (file_exists(self::TO_PATH)) {
                 $this->output->writeln("File `tests/{$to}` already exists, skipped");

                 continue;
             }

-            if (!copy($fromPath, $toPath)) {
-                throw ShouldNotHappen::fromMessage("Failed to copy stub `{$from}` to `{$toPath}`");
+            if (!copy($fromPath, self::TO_PATH)) {
+                throw ShouldNotHappen::fromMessage("Failed to copy stub `{$from}` to `{{self::TO_PATH}}`");
             }

             $this->output->writeln("Created `{$to}` file");
         }
-
         $this->output->writeln('Pest initialised!');
     }
 }
    ----------- end diff -----------


Applied rules:

 * Rector\Renaming\Rector\Function_\RenameFunctionRector
 * Rector\SOLID\Rector\ClassMethod\ChangeReadOnlyVariableWithDefaultValueToConstantRector



 [WARNING] 2 nodes were removed



 [OK] Rector is done! 1 file have been changed.

What is the output with --debug?

File "/Users/nunomaduro/pestphp/pest-plugin-init/vendor/autoload.php" is about to be loaded in "AutoloadIncluder::includeCwdVendorAutoloadIfExists()" on line 73"
File "/Users/nunomaduro/pestphp/pest-plugin-init/vendor/rector/rector/../../autoload.php" is about to be loaded in "AutoloadIncluder::autoloadProjectAutoloaderFile()" on line 105"
File "/Users/nunomaduro/pestphp/pest-plugin-init/vendor/autoload.php" is about to be loaded in "AutoloadIncluder::includeCwdVendorAutoloadIfExists()" on line 73"
File "/Users/nunomaduro/pestphp/pest-plugin-init/vendor/rector/rector/../../autoload.php" is about to be loaded in "AutoloadIncluder::autoloadProjectAutoloaderFile()" on line 105"
Rector v0.7.29
Config file: rector.yaml

[parsing] src/Plugin.php
[refactoring] src/Plugin.php
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ActionInjectionToConstructorInjectionRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPUnit\Rector\Class_\AddSeeTestAnnotationRector
    [applying] Rector\SOLID\Rector\Class_\FinalizeClassesWithoutChildrenRector
    [applying] Rector\SOLID\Rector\Class_\MakeUnusedClassesWithChildrenAbstractRector
    [applying] Rector\SOLID\Rector\ClassMethod\ChangeReadOnlyVariableWithDefaultValueToConstantRector
    [applying] Rector\SOLID\Rector\Class_\RepeatedLiteralToClassConstantRector
    [applying] Rector\Doctrine\Rector\Class_\ManagerRegistryGetManagerToEntityManagerRector
    [applying] Rector\DoctrineCodeQuality\Rector\Class_\InitializeDefaultEntityCollectionRector
    [applying] Rector\CodeQuality\Rector\Class_\CompleteDynamicPropertiesRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php73\Rector\String_\SensitiveHereNowDocRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Array_\CallableThisArrayToAnonymousFunctionRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php73\Rector\String_\SensitiveHereNowDocRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php73\Rector\String_\SensitiveHereNowDocRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php73\Rector\String_\SensitiveHereNowDocRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php73\Rector\String_\SensitiveHereNowDocRector
    [applying] Rector\Php52\Rector\Property\VarToPublicPropertyRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\SOLID\Rector\Property\ChangeReadOnlyPropertyWithDefaultValueToConstantRector
    [applying] Rector\SOLID\Rector\Property\AddFalseDefaultToBoolPropertyRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\Php52\Rector\Property\VarToPublicPropertyRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\SOLID\Rector\Property\ChangeReadOnlyPropertyWithDefaultValueToConstantRector
    [applying] Rector\SOLID\Rector\Property\AddFalseDefaultToBoolPropertyRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
    [applying] Rector\SOLID\Rector\ClassMethod\UseInterfaceOverImplementationInConstructorRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\InlineIfToExplicitIfRector
    [applying] Rector\PHPStan\Rector\Assign\PHPStormVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Assign\CombinedAssignRector
    [applying] Rector\CodeQuality\Rector\Assign\SplitListAssignToSeparateLineRector
    [applying] Rector\Php71\Rector\Assign\AssignArrayToStringRector
    [applying] Rector\Php72\Rector\Each\ListEachRector
    [applying] Rector\Php72\Rector\Unset_\UnsetCastRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\InlineIfToExplicitIfRector
    [applying] Rector\PHPStan\Rector\Assign\PHPStormVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Assign\CombinedAssignRector
    [applying] Rector\CodeQuality\Rector\Assign\SplitListAssignToSeparateLineRector
    [applying] Rector\Php71\Rector\Assign\AssignArrayToStringRector
    [applying] Rector\Php72\Rector\Each\ListEachRector
    [applying] Rector\Php72\Rector\Unset_\UnsetCastRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
    [applying] Rector\SOLID\Rector\ClassMethod\UseInterfaceOverImplementationInConstructorRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\SOLID\Rector\If_\RemoveAlwaysElseRector
    [applying] Rector\SOLID\Rector\If_\ChangeNestedIfsToEarlyReturnRector
    [applying] Rector\SOLID\Rector\If_\ChangeIfElseValueAssignToEarlyReturnRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfNotNullReturnRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector
    [applying] Rector\CodeQuality\Rector\If_\ConsecutiveNullCompareReturnsToNullCoalesceQueueRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfIssetToNullCoalescingRector
    [applying] Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector
    [applying] Rector\CodeQuality\Rector\If_\CombineIfRector
    [applying] Rector\CodeQuality\Rector\If_\ShortenElseIfRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\BinaryOp\IsIterableRector
    [applying] Rector\Php71\Rector\BinaryOp\BinaryOpBetweenNumberAndStringRector
    [applying] Rector\Php73\Rector\BinaryOp\IsCountableRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Identical\SimplifyConditionsRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\SimplifyDeMorganBinaryRector
    [applying] Rector\CodeQuality\Rector\Identical\BooleanNotIdenticalToNotIdenticalRector
    [applying] Rector\Core\Rector\Function_\FunctionToStaticCallRector
    [applying] Rector\Renaming\Rector\Function_\RenameFunctionRector
    [applying] Rector\Celebrity\Rector\FuncCall\SetTypeToCastRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\FuncCall\InArrayAndArrayKeysToArrayKeyExistsRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyFuncGetArgsCountRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyInArrayValuesRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyStrposLowerRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SingleInArrayToCompareRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyRegexPatternRector
    [applying] Rector\CodeQuality\Rector\FuncCall\CompactToVariablesRector
    [applying] Rector\CodeQuality\Rector\FuncCall\IsAWithStringWithThirdArgumentRector
    [applying] Rector\CodeQuality\Rector\FuncCall\RemoveSoleValueSprintfRector
    [applying] Rector\CodeQuality\Rector\FuncCall\AddPregQuoteDelimiterRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ArrayMergeOfNonArraysToSimpleArrayRector
    [applying] Rector\CodeQuality\Rector\FuncCall\IntvalToTypeCastRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ChangeArrayPushToArrayAssignRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ArrayKeysAndInArrayToArrayKeyExistsRector
    [applying] Rector\Php71\Rector\FuncCall\CountOnNullRector
    [applying] Rector\Php72\Rector\FuncCall\GetClassOnNullRector
    [applying] Rector\Php72\Rector\FuncCall\IsObjectOnIncompleteClassRector
    [applying] Rector\Php72\Rector\FuncCall\ParseStrWithResultArgumentRector
    [applying] Rector\Php72\Rector\FuncCall\StringsAssertNakedRector
    [applying] Rector\Php72\Rector\FuncCall\CreateFunctionToAnonymousFunctionRector
    [applying] Rector\Php72\Rector\FuncCall\StringifyDefineRector
    [applying] Rector\Php73\Rector\FuncCall\ArrayKeyFirstLastRector
    [applying] Rector\Php73\Rector\FuncCall\SensitiveDefineRector
    [applying] Rector\Php73\Rector\FuncCall\StringifyStrNeedlesRector
    [applying] Rector\Php73\Rector\FuncCall\JsonThrowOnErrorRector
    [applying] Rector\Php73\Rector\FuncCall\RegexDashEscapeRector
    [applying] Rector\Php73\Rector\FuncCall\RemoveMissingCompactVariableRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Identical\GetClassToInstanceOfRector
    [applying] Rector\CodeQuality\Rector\Identical\SimplifyArraySearchRector
    [applying] Rector\CodeQuality\Rector\Identical\SimplifyBoolIdenticalTrueRector
    [applying] Rector\Php71\Rector\BinaryOp\BinaryOpBetweenNumberAndStringRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Return_\SimplifyUselessVariableRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\InlineIfToExplicitIfRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPUnit\Rector\MethodCall\RemoveExpectAnyFromMockRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\InlineIfToExplicitIfRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\If_\RemoveAlwaysTrueConditionSetInConstructorRector
    [applying] Rector\SOLID\Rector\ClassMethod\UseInterfaceOverImplementationInConstructorRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Assign\PHPStormVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Assign\CombinedAssignRector
    [applying] Rector\CodeQuality\Rector\Assign\SplitListAssignToSeparateLineRector
    [applying] Rector\Php71\Rector\Assign\AssignArrayToStringRector
    [applying] Rector\Php72\Rector\Each\ListEachRector
    [applying] Rector\Php72\Rector\Unset_\UnsetCastRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\SOLID\Rector\If_\RemoveAlwaysElseRector
    [applying] Rector\SOLID\Rector\If_\ChangeNestedIfsToEarlyReturnRector
    [applying] Rector\SOLID\Rector\If_\ChangeIfElseValueAssignToEarlyReturnRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfNotNullReturnRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector
    [applying] Rector\CodeQuality\Rector\If_\ConsecutiveNullCompareReturnsToNullCoalesceQueueRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfIssetToNullCoalescingRector
    [applying] Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector
    [applying] Rector\CodeQuality\Rector\If_\CombineIfRector
    [applying] Rector\CodeQuality\Rector\If_\ShortenElseIfRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Identical\SimplifyConditionsRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\SimplifyDeMorganBinaryRector
    [applying] Rector\CodeQuality\Rector\Identical\BooleanNotIdenticalToNotIdenticalRector
    [applying] Rector\Core\Rector\Function_\FunctionToStaticCallRector
    [applying] Rector\Renaming\Rector\Function_\RenameFunctionRector
    [applying] Rector\Celebrity\Rector\FuncCall\SetTypeToCastRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\FuncCall\InArrayAndArrayKeysToArrayKeyExistsRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyFuncGetArgsCountRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyInArrayValuesRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyStrposLowerRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SingleInArrayToCompareRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyRegexPatternRector
    [applying] Rector\CodeQuality\Rector\FuncCall\CompactToVariablesRector
    [applying] Rector\CodeQuality\Rector\FuncCall\IsAWithStringWithThirdArgumentRector
    [applying] Rector\CodeQuality\Rector\FuncCall\RemoveSoleValueSprintfRector
    [applying] Rector\CodeQuality\Rector\FuncCall\AddPregQuoteDelimiterRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ArrayMergeOfNonArraysToSimpleArrayRector
    [applying] Rector\CodeQuality\Rector\FuncCall\IntvalToTypeCastRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ChangeArrayPushToArrayAssignRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ArrayKeysAndInArrayToArrayKeyExistsRector
    [applying] Rector\Php71\Rector\FuncCall\CountOnNullRector
    [applying] Rector\Php72\Rector\FuncCall\GetClassOnNullRector
    [applying] Rector\Php72\Rector\FuncCall\IsObjectOnIncompleteClassRector
    [applying] Rector\Php72\Rector\FuncCall\ParseStrWithResultArgumentRector
    [applying] Rector\Php72\Rector\FuncCall\StringsAssertNakedRector
    [applying] Rector\Php72\Rector\FuncCall\CreateFunctionToAnonymousFunctionRector
    [applying] Rector\Php72\Rector\FuncCall\StringifyDefineRector
    [applying] Rector\Php73\Rector\FuncCall\ArrayKeyFirstLastRector
    [applying] Rector\Php73\Rector\FuncCall\SensitiveDefineRector
    [applying] Rector\Php73\Rector\FuncCall\StringifyStrNeedlesRector
    [applying] Rector\Php73\Rector\FuncCall\JsonThrowOnErrorRector
    [applying] Rector\Php73\Rector\FuncCall\RegexDashEscapeRector
    [applying] Rector\Php73\Rector\FuncCall\RemoveMissingCompactVariableRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\SOLID\Rector\If_\RemoveAlwaysElseRector
    [applying] Rector\SOLID\Rector\If_\ChangeNestedIfsToEarlyReturnRector
    [applying] Rector\SOLID\Rector\If_\ChangeIfElseValueAssignToEarlyReturnRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfNotNullReturnRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector
    [applying] Rector\CodeQuality\Rector\If_\ConsecutiveNullCompareReturnsToNullCoalesceQueueRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfIssetToNullCoalescingRector
    [applying] Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector
    [applying] Rector\CodeQuality\Rector\If_\CombineIfRector
    [applying] Rector\CodeQuality\Rector\If_\ShortenElseIfRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\BooleanAnd\SimplifyEmptyArrayCheckRector
    [applying] Rector\Php71\Rector\BinaryOp\BinaryOpBetweenNumberAndStringRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Identical\SimplifyConditionsRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\SimplifyDeMorganBinaryRector
    [applying] Rector\CodeQuality\Rector\Identical\BooleanNotIdenticalToNotIdenticalRector
    [applying] Rector\Core\Rector\Function_\FunctionToStaticCallRector
    [applying] Rector\Renaming\Rector\Function_\RenameFunctionRector
    [applying] Rector\Celebrity\Rector\FuncCall\SetTypeToCastRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\FuncCall\InArrayAndArrayKeysToArrayKeyExistsRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyFuncGetArgsCountRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyInArrayValuesRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyStrposLowerRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SingleInArrayToCompareRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyRegexPatternRector
    [applying] Rector\CodeQuality\Rector\FuncCall\CompactToVariablesRector
    [applying] Rector\CodeQuality\Rector\FuncCall\IsAWithStringWithThirdArgumentRector
    [applying] Rector\CodeQuality\Rector\FuncCall\RemoveSoleValueSprintfRector
    [applying] Rector\CodeQuality\Rector\FuncCall\AddPregQuoteDelimiterRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ArrayMergeOfNonArraysToSimpleArrayRector
    [applying] Rector\CodeQuality\Rector\FuncCall\IntvalToTypeCastRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ChangeArrayPushToArrayAssignRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ArrayKeysAndInArrayToArrayKeyExistsRector
    [applying] Rector\Php71\Rector\FuncCall\CountOnNullRector
    [applying] Rector\Php72\Rector\FuncCall\GetClassOnNullRector
    [applying] Rector\Php72\Rector\FuncCall\IsObjectOnIncompleteClassRector
    [applying] Rector\Php72\Rector\FuncCall\ParseStrWithResultArgumentRector
    [applying] Rector\Php72\Rector\FuncCall\StringsAssertNakedRector
    [applying] Rector\Php72\Rector\FuncCall\CreateFunctionToAnonymousFunctionRector
    [applying] Rector\Php72\Rector\FuncCall\StringifyDefineRector
    [applying] Rector\Php73\Rector\FuncCall\ArrayKeyFirstLastRector
    [applying] Rector\Php73\Rector\FuncCall\SensitiveDefineRector
    [applying] Rector\Php73\Rector\FuncCall\StringifyStrNeedlesRector
    [applying] Rector\Php73\Rector\FuncCall\JsonThrowOnErrorRector
    [applying] Rector\Php73\Rector\FuncCall\RegexDashEscapeRector
    [applying] Rector\Php73\Rector\FuncCall\RemoveMissingCompactVariableRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Identical\SimplifyConditionsRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\SimplifyDeMorganBinaryRector
    [applying] Rector\CodeQuality\Rector\Identical\BooleanNotIdenticalToNotIdenticalRector
    [applying] Rector\Core\Rector\Function_\FunctionToStaticCallRector
    [applying] Rector\Renaming\Rector\Function_\RenameFunctionRector
    [applying] Rector\Celebrity\Rector\FuncCall\SetTypeToCastRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\FuncCall\InArrayAndArrayKeysToArrayKeyExistsRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyFuncGetArgsCountRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyInArrayValuesRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyStrposLowerRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SingleInArrayToCompareRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyRegexPatternRector
    [applying] Rector\CodeQuality\Rector\FuncCall\CompactToVariablesRector
    [applying] Rector\CodeQuality\Rector\FuncCall\IsAWithStringWithThirdArgumentRector
    [applying] Rector\CodeQuality\Rector\FuncCall\RemoveSoleValueSprintfRector
    [applying] Rector\CodeQuality\Rector\FuncCall\AddPregQuoteDelimiterRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ArrayMergeOfNonArraysToSimpleArrayRector
    [applying] Rector\CodeQuality\Rector\FuncCall\IntvalToTypeCastRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ChangeArrayPushToArrayAssignRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ArrayKeysAndInArrayToArrayKeyExistsRector
    [applying] Rector\Php71\Rector\FuncCall\CountOnNullRector
    [applying] Rector\Php72\Rector\FuncCall\GetClassOnNullRector
    [applying] Rector\Php72\Rector\FuncCall\IsObjectOnIncompleteClassRector
    [applying] Rector\Php72\Rector\FuncCall\ParseStrWithResultArgumentRector
    [applying] Rector\Php72\Rector\FuncCall\StringsAssertNakedRector
    [applying] Rector\Php72\Rector\FuncCall\CreateFunctionToAnonymousFunctionRector
    [applying] Rector\Php72\Rector\FuncCall\StringifyDefineRector
    [applying] Rector\Php73\Rector\FuncCall\ArrayKeyFirstLastRector
    [applying] Rector\Php73\Rector\FuncCall\SensitiveDefineRector
    [applying] Rector\Php73\Rector\FuncCall\StringifyStrNeedlesRector
    [applying] Rector\Php73\Rector\FuncCall\JsonThrowOnErrorRector
    [applying] Rector\Php73\Rector\FuncCall\RegexDashEscapeRector
    [applying] Rector\Php73\Rector\FuncCall\RemoveMissingCompactVariableRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyRegexPatternRector
    [applying] Rector\Php73\Rector\FuncCall\RegexDashEscapeRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\InlineIfToExplicitIfRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPUnit\Rector\MethodCall\RemoveExpectAnyFromMockRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php73\Rector\String_\SensitiveHereNowDocRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\SOLID\Rector\Foreach_\ChangeNestedForeachIfsToEarlyContinueRector
    [applying] Rector\CodeQuality\Rector\Foreach_\ForeachToInArrayRector
    [applying] Rector\CodeQuality\Rector\Foreach_\SimplifyForeachToCoalescingRector
    [applying] Rector\CodeQuality\Rector\Foreach_\SimplifyForeachToArrayFilterRector
    [applying] Rector\CodeQuality\Rector\Foreach_\ForeachItemsAssignToEmptyArrayToAssignRector
    [applying] Rector\CodeQuality\Rector\Foreach_\UnusedForeachValueToArrayKeysRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\InlineIfToExplicitIfRector
    [applying] Rector\PHPStan\Rector\Assign\PHPStormVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Assign\CombinedAssignRector
    [applying] Rector\CodeQuality\Rector\Assign\SplitListAssignToSeparateLineRector
    [applying] Rector\Php71\Rector\Assign\AssignArrayToStringRector
    [applying] Rector\Php72\Rector\Each\ListEachRector
    [applying] Rector\Php72\Rector\Unset_\UnsetCastRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Concat\JoinStringConcatRector
    [applying] Rector\Php71\Rector\BinaryOp\BinaryOpBetweenNumberAndStringRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Assign\PHPStormVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Assign\CombinedAssignRector
    [applying] Rector\CodeQuality\Rector\Assign\SplitListAssignToSeparateLineRector
    [applying] Rector\Php71\Rector\Assign\AssignArrayToStringRector
    [applying] Rector\Php72\Rector\Each\ListEachRector
    [applying] Rector\Php72\Rector\Unset_\UnsetCastRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\SOLID\Rector\If_\RemoveAlwaysElseRector
    [applying] Rector\SOLID\Rector\If_\ChangeNestedIfsToEarlyReturnRector
    [applying] Rector\SOLID\Rector\If_\ChangeIfElseValueAssignToEarlyReturnRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfNotNullReturnRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector
    [applying] Rector\CodeQuality\Rector\If_\ConsecutiveNullCompareReturnsToNullCoalesceQueueRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfIssetToNullCoalescingRector
    [applying] Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector
    [applying] Rector\CodeQuality\Rector\If_\CombineIfRector
    [applying] Rector\CodeQuality\Rector\If_\ShortenElseIfRector
    [applying] Rector\Core\Rector\Function_\FunctionToStaticCallRector
    [applying] Rector\Renaming\Rector\Function_\RenameFunctionRector
    [applying] Rector\Celebrity\Rector\FuncCall\SetTypeToCastRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\FuncCall\InArrayAndArrayKeysToArrayKeyExistsRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyFuncGetArgsCountRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyInArrayValuesRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyStrposLowerRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SingleInArrayToCompareRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyRegexPatternRector
    [applying] Rector\CodeQuality\Rector\FuncCall\CompactToVariablesRector
    [applying] Rector\CodeQuality\Rector\FuncCall\IsAWithStringWithThirdArgumentRector
    [applying] Rector\CodeQuality\Rector\FuncCall\RemoveSoleValueSprintfRector
    [applying] Rector\CodeQuality\Rector\FuncCall\AddPregQuoteDelimiterRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ArrayMergeOfNonArraysToSimpleArrayRector
    [applying] Rector\CodeQuality\Rector\FuncCall\IntvalToTypeCastRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ChangeArrayPushToArrayAssignRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ArrayKeysAndInArrayToArrayKeyExistsRector
    [applying] Rector\Php71\Rector\FuncCall\CountOnNullRector
    [applying] Rector\Php72\Rector\FuncCall\GetClassOnNullRector
    [applying] Rector\Php72\Rector\FuncCall\IsObjectOnIncompleteClassRector
    [applying] Rector\Php72\Rector\FuncCall\ParseStrWithResultArgumentRector
    [applying] Rector\Php72\Rector\FuncCall\StringsAssertNakedRector
    [applying] Rector\Php72\Rector\FuncCall\CreateFunctionToAnonymousFunctionRector
    [applying] Rector\Php72\Rector\FuncCall\StringifyDefineRector
    [applying] Rector\Php73\Rector\FuncCall\ArrayKeyFirstLastRector
    [applying] Rector\Php73\Rector\FuncCall\SensitiveDefineRector
    [applying] Rector\Php73\Rector\FuncCall\StringifyStrNeedlesRector
    [applying] Rector\Php73\Rector\FuncCall\JsonThrowOnErrorRector
    [applying] Rector\Php73\Rector\FuncCall\RegexDashEscapeRector
    [applying] Rector\Php73\Rector\FuncCall\RemoveMissingCompactVariableRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\InlineIfToExplicitIfRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPUnit\Rector\MethodCall\RemoveExpectAnyFromMockRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\SOLID\Rector\If_\RemoveAlwaysElseRector
    [applying] Rector\SOLID\Rector\If_\ChangeNestedIfsToEarlyReturnRector
    [applying] Rector\SOLID\Rector\If_\ChangeIfElseValueAssignToEarlyReturnRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfNotNullReturnRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfReturnBoolRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfElseToTernaryRector
    [applying] Rector\CodeQuality\Rector\If_\ConsecutiveNullCompareReturnsToNullCoalesceQueueRector
    [applying] Rector\CodeQuality\Rector\If_\SimplifyIfIssetToNullCoalescingRector
    [applying] Rector\CodeQuality\Rector\If_\ExplicitBoolCompareRector
    [applying] Rector\CodeQuality\Rector\If_\CombineIfRector
    [applying] Rector\CodeQuality\Rector\If_\ShortenElseIfRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\Identical\SimplifyConditionsRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\SimplifyDeMorganBinaryRector
    [applying] Rector\CodeQuality\Rector\Identical\BooleanNotIdenticalToNotIdenticalRector
    [applying] Rector\Core\Rector\Function_\FunctionToStaticCallRector
    [applying] Rector\Renaming\Rector\Function_\RenameFunctionRector
    [applying] Rector\Celebrity\Rector\FuncCall\SetTypeToCastRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\FuncCall\InArrayAndArrayKeysToArrayKeyExistsRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyFuncGetArgsCountRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyInArrayValuesRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyStrposLowerRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SingleInArrayToCompareRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyRegexPatternRector
    [applying] Rector\CodeQuality\Rector\FuncCall\CompactToVariablesRector
    [applying] Rector\CodeQuality\Rector\FuncCall\IsAWithStringWithThirdArgumentRector
    [applying] Rector\CodeQuality\Rector\FuncCall\RemoveSoleValueSprintfRector
    [applying] Rector\CodeQuality\Rector\FuncCall\AddPregQuoteDelimiterRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ArrayMergeOfNonArraysToSimpleArrayRector
    [applying] Rector\CodeQuality\Rector\FuncCall\IntvalToTypeCastRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ChangeArrayPushToArrayAssignRector
    [applying] Rector\CodeQuality\Rector\FuncCall\ArrayKeysAndInArrayToArrayKeyExistsRector
    [applying] Rector\Php71\Rector\FuncCall\CountOnNullRector
    [applying] Rector\Php72\Rector\FuncCall\GetClassOnNullRector
    [applying] Rector\Php72\Rector\FuncCall\IsObjectOnIncompleteClassRector
    [applying] Rector\Php72\Rector\FuncCall\ParseStrWithResultArgumentRector
    [applying] Rector\Php72\Rector\FuncCall\StringsAssertNakedRector
    [applying] Rector\Php72\Rector\FuncCall\CreateFunctionToAnonymousFunctionRector
    [applying] Rector\Php72\Rector\FuncCall\StringifyDefineRector
    [applying] Rector\Php73\Rector\FuncCall\ArrayKeyFirstLastRector
    [applying] Rector\Php73\Rector\FuncCall\SensitiveDefineRector
    [applying] Rector\Php73\Rector\FuncCall\StringifyStrNeedlesRector
    [applying] Rector\Php73\Rector\FuncCall\JsonThrowOnErrorRector
    [applying] Rector\Php73\Rector\FuncCall\RegexDashEscapeRector
    [applying] Rector\Php73\Rector\FuncCall\RemoveMissingCompactVariableRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\CodeQuality\Rector\FuncCall\SimplifyRegexPatternRector
    [applying] Rector\Php73\Rector\FuncCall\RegexDashEscapeRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\InlineIfToExplicitIfRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPUnit\Rector\MethodCall\RemoveExpectAnyFromMockRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Renaming\Rector\Class_\RenameClassRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\CodeQuality\Rector\BinaryOp\InlineIfToExplicitIfRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPUnit\Rector\MethodCall\RemoveExpectAnyFromMockRector
    [applying] Rector\Php71\Rector\FuncCall\RemoveExtraParametersRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Core\Rector\Architecture\DependencyInjection\ReplaceVariableByPropertyFetchRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php71\Rector\Name\ReservedObjectRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\PHPStan\Rector\Node\RemoveNonExistingVarAnnotationRector
    [applying] Rector\Php73\Rector\String_\SensitiveHereNowDocRector
[printing] src/Plugin.php


1 file with changes
===================

1) src/Plugin.php

    ---------- begin diff ----------
--- Original
+++ New
@@ -23,6 +23,8 @@

     /** @var TestSuite */
     private $testSuite;
+    private const TESTS_BASE_DIR = "{$this->testSuite->rootPath}/tests";
+    private const TO_PATH = "{self::TESTS_BASE_DIR}/$to";

     public function __construct(TestSuite $testSuite, OutputInterface $output)
     {
@@ -43,33 +45,28 @@

     private function init(): void
     {
-        $testsBaseDir = "{$this->testSuite->rootPath}/tests";
-
-        if (!is_dir($testsBaseDir)) {
-            if (!mkdir($testsBaseDir) && !is_dir($testsBaseDir)) {
-                throw ShouldNotHappen::fromMessage("Directory `{$testsBaseDir}` was not created");
+        if (!is_dir(self::TESTS_BASE_DIR)) {
+            if (!mkdir(self::TESTS_BASE_DIR) && !is_dir(self::TESTS_BASE_DIR)) {
+                throw ShouldNotHappen::fromMessage("Directory `{{self::TESTS_BASE_DIR}}` was not created");
             }

             $this->output->writeln('Created `tests` directory');
         }
-
         foreach (self::STUBS as $from => $to) {
             $fromPath = __DIR__ . "/../stubs/$from";
-            $toPath   = "$testsBaseDir/$to";

-            if (file_exists($toPath)) {
+            if (file_exists(self::TO_PATH)) {
                 $this->output->writeln("File `tests/{$to}` already exists, skipped");

                 continue;
             }

-            if (!copy($fromPath, $toPath)) {
-                throw ShouldNotHappen::fromMessage("Failed to copy stub `{$from}` to `{$toPath}`");
+            if (!copy($fromPath, self::TO_PATH)) {
+                throw ShouldNotHappen::fromMessage("Failed to copy stub `{$from}` to `{{self::TO_PATH}}`");
             }

             $this->output->writeln("Created `{$to}` file");
         }
-
         $this->output->writeln('Pest initialised!');
     }
 }
    ----------- end diff -----------


Applied rules:

 * Rector\Renaming\Rector\Function_\RenameFunctionRector
 * Rector\SOLID\Rector\ClassMethod\ChangeReadOnlyVariableWithDefaultValueToConstantRector


 [WARNING] 2 nodes were removed                                      

1) src/Plugin.php:46
-self::TESTS_BASE_DIR = "{$this->testSuite->rootPath}/tests";

2) src/Plugin.php:58
-self::TO_PATH = "{self::TESTS_BASE_DIR}/{$to}";

 [OK] Rector is done! 1 file have been changed.                      

Great! is important here.

Could you add test case with your PHP code to
https://github.com/rectorphp/rector/tree/master/rules/solid/tests/Rector/ClassMethod/ChangeReadOnlyVariableWithDefaultValueToConstantRector/Fixture

I'd be able to fix it quickly then

Yes - give me a couple days max. Thanks!

Yes - give me a couple days max.

I didn't notice any PR. Is this issues still relevant for you?

I will re-open it if I face the issue again, thanks!

Thanks @TomasVotruba! You are the best.

Was this page helpful?
0 / 5 - 0 ratings