From be1a72534ca7b36ed17f00a8ec669f4c6d0abe0c Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Thu, 3 Mar 2022 16:37:48 +0000 Subject: [PATCH] Updated Rector to commit 320cdcd8dec579a3bb9a6138d1e50f72a22c0419 https://github.com/rectorphp/rector-src/commit/320cdcd8dec579a3bb9a6138d1e50f72a22c0419 [MockeryToProphecy] Deprecate micro set as not practical (#1899) --- docs/rector_rules_overview.md | 38 +---- .../Collector/MockVariableCollector.php | 60 -------- .../MockeryCreateMockToProphizeRector.php | 132 ------------------ .../StaticCall/MockeryCloseRemoveRector.php | 67 --------- src/Application/VersionResolver.php | 4 +- vendor/autoload.php | 2 +- vendor/composer/autoload_classmap.php | 3 - vendor/composer/autoload_real.php | 14 +- vendor/composer/autoload_static.php | 11 +- vendor/scoper-autoload.php | 10 +- 10 files changed, 20 insertions(+), 321 deletions(-) delete mode 100644 rules/MockeryToProphecy/Collector/MockVariableCollector.php delete mode 100644 rules/MockeryToProphecy/Rector/ClassMethod/MockeryCreateMockToProphizeRector.php delete mode 100644 rules/MockeryToProphecy/Rector/StaticCall/MockeryCloseRemoveRector.php diff --git a/docs/rector_rules_overview.md b/docs/rector_rules_overview.md index d9ae4291824..03ac98c62fa 100644 --- a/docs/rector_rules_overview.md +++ b/docs/rector_rules_overview.md @@ -1,4 +1,4 @@ -# 514 Rules Overview +# 512 Rules Overview
@@ -42,8 +42,6 @@ - [EarlyReturn](#earlyreturn) (11) -- [MockeryToProphecy](#mockerytoprophecy) (2) - - [MysqlToMysqli](#mysqltomysqli) (4) - [Naming](#naming) (6) @@ -6236,40 +6234,6 @@ Changes Single return of || to early returns
-## MockeryToProphecy - -### MockeryCloseRemoveRector - -Removes mockery close from test classes - -- class: [`Rector\MockeryToProphecy\Rector\StaticCall\MockeryCloseRemoveRector`](../rules/MockeryToProphecy/Rector/StaticCall/MockeryCloseRemoveRector.php) - -```diff - public function tearDown() : void - { -- \Mockery::close(); - } -``` - -
- -### MockeryCreateMockToProphizeRector - -Changes mockery mock creation to Prophesize - -- class: [`Rector\MockeryToProphecy\Rector\ClassMethod\MockeryCreateMockToProphizeRector`](../rules/MockeryToProphecy/Rector/ClassMethod/MockeryCreateMockToProphizeRector.php) - -```diff --$mock = \Mockery::mock('MyClass'); -+$mock = $this->prophesize('MyClass'); -+ - $service = new Service(); --$service->injectDependency($mock); -+$service->injectDependency($mock->reveal()); -``` - -
- ## MysqlToMysqli ### MysqlAssignToMysqliRector diff --git a/rules/MockeryToProphecy/Collector/MockVariableCollector.php b/rules/MockeryToProphecy/Collector/MockVariableCollector.php deleted file mode 100644 index 69a4924b3c8..00000000000 --- a/rules/MockeryToProphecy/Collector/MockVariableCollector.php +++ /dev/null @@ -1,60 +0,0 @@ -nodeNameResolver = $nodeNameResolver; - $this->valueResolver = $valueResolver; - } - /** - * @return array - * @param \PhpParser\Node\Expr\FuncCall|\PhpParser\Node\Expr\StaticCall $node - */ - public function collectMockVariableName($node) : array - { - $mockVariableTypesByNames = []; - $parentNode = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::PARENT_NODE); - if (!$parentNode instanceof \PhpParser\Node\Expr\Assign) { - return []; - } - if (!$parentNode->var instanceof \PhpParser\Node\Expr\Variable) { - return []; - } - /** @var Variable $variable */ - $variable = $parentNode->var; - /** @var string $variableName */ - $variableName = $this->nodeNameResolver->getName($variable); - if (!isset($node->args[0])) { - return []; - } - if (!$node->args[0] instanceof \PhpParser\Node\Arg) { - return []; - } - $type = $node->args[0]->value; - $mockedType = $this->valueResolver->getValue($type); - $mockVariableTypesByNames[$variableName] = $mockedType; - return $mockVariableTypesByNames; - } -} diff --git a/rules/MockeryToProphecy/Rector/ClassMethod/MockeryCreateMockToProphizeRector.php b/rules/MockeryToProphecy/Rector/ClassMethod/MockeryCreateMockToProphizeRector.php deleted file mode 100644 index 595532a555c..00000000000 --- a/rules/MockeryToProphecy/Rector/ClassMethod/MockeryCreateMockToProphizeRector.php +++ /dev/null @@ -1,132 +0,0 @@ - - */ - private $mockVariableTypesByNames = []; - /** - * @readonly - * @var \Rector\MockeryToProphecy\Collector\MockVariableCollector - */ - private $mockVariableCollector; - /** - * @readonly - * @var \Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer - */ - private $testsNodeAnalyzer; - public function __construct(\Rector\MockeryToProphecy\Collector\MockVariableCollector $mockVariableCollector, \Rector\PHPUnit\NodeAnalyzer\TestsNodeAnalyzer $testsNodeAnalyzer) - { - $this->mockVariableCollector = $mockVariableCollector; - $this->testsNodeAnalyzer = $testsNodeAnalyzer; - } - /** - * @return array> - */ - public function getNodeTypes() : array - { - return [\PhpParser\Node\Stmt\ClassMethod::class]; - } - /** - * @param ClassMethod $node - */ - public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node - { - if (!$this->testsNodeAnalyzer->isInTestClass($node)) { - return null; - } - $this->replaceMockCreationsAndCollectVariableNames($node); - $this->revealMockArguments($node); - return $node; - } - public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition - { - return new \Symplify\RuleDocGenerator\ValueObject\RuleDefinition('Changes mockery mock creation to Prophesize', [new \Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample(<<<'CODE_SAMPLE' -$mock = \Mockery::mock('MyClass'); -$service = new Service(); -$service->injectDependency($mock); -CODE_SAMPLE -, <<<'CODE_SAMPLE' - $mock = $this->prophesize('MyClass'); - -$service = new Service(); -$service->injectDependency($mock->reveal()); -CODE_SAMPLE -)]); - } - private function replaceMockCreationsAndCollectVariableNames(\PhpParser\Node\Stmt\ClassMethod $classMethod) : void - { - if ($classMethod->stmts === null) { - return; - } - $this->traverseNodesWithCallable($classMethod->stmts, function (\PhpParser\Node $node) : ?MethodCall { - if (!$node instanceof \PhpParser\Node\Expr\StaticCall) { - return null; - } - $callerType = $this->nodeTypeResolver->getType($node->class); - if (!$callerType->isSuperTypeOf(new \PHPStan\Type\ObjectType('Mockery'))->yes()) { - return null; - } - if (!$this->isName($node->name, 'mock')) { - return null; - } - $collectedVariableTypesByNames = $this->mockVariableCollector->collectMockVariableName($node); - $item0Unpacked = $this->mockVariableTypesByNames; - /** @var array $result */ - $result = \array_merge($item0Unpacked, $collectedVariableTypesByNames); - $this->mockVariableTypesByNames = $result; - $parentNode = $node->getAttribute(\Rector\NodeTypeResolver\Node\AttributeKey::PARENT_NODE); - if ($parentNode instanceof \PhpParser\Node\Arg) { - $prophesizeMethodCall = $this->createProphesizeMethodCall($node); - return $this->nodeFactory->createMethodCall($prophesizeMethodCall, 'reveal'); - } - return $this->createProphesizeMethodCall($node); - }); - } - private function revealMockArguments(\PhpParser\Node\Stmt\ClassMethod $classMethod) : void - { - if ($classMethod->stmts === null) { - return; - } - $this->traverseNodesWithCallable($classMethod->stmts, function (\PhpParser\Node $node) : ?Arg { - if (!$node instanceof \PhpParser\Node\Arg) { - return null; - } - if (!$node->value instanceof \PhpParser\Node\Expr\Variable) { - return null; - } - /** @var string $variableName */ - $variableName = $this->getName($node->value); - if (!isset($this->mockVariableTypesByNames[$variableName])) { - return null; - } - $methodCall = $this->nodeFactory->createMethodCall($node->value, 'reveal'); - $node->value = $methodCall; - return $node; - }); - } - private function createProphesizeMethodCall(\PhpParser\Node\Expr\StaticCall $staticCall) : \PhpParser\Node\Expr\MethodCall - { - return $this->nodeFactory->createLocalMethodCall('prophesize', [$staticCall->args[0]]); - } -} diff --git a/rules/MockeryToProphecy/Rector/StaticCall/MockeryCloseRemoveRector.php b/rules/MockeryToProphecy/Rector/StaticCall/MockeryCloseRemoveRector.php deleted file mode 100644 index 3f5a4ad0cad..00000000000 --- a/rules/MockeryToProphecy/Rector/StaticCall/MockeryCloseRemoveRector.php +++ /dev/null @@ -1,67 +0,0 @@ -testsNodeAnalyzer = $testsNodeAnalyzer; - } - /** - * @return array> - */ - public function getNodeTypes() : array - { - return [\PhpParser\Node\Expr\StaticCall::class]; - } - /** - * @param StaticCall $node - */ - public function refactor(\PhpParser\Node $node) : ?\PhpParser\Node - { - if (!$this->testsNodeAnalyzer->isInTestClass($node)) { - return null; - } - $callerType = $this->nodeTypeResolver->getType($node->class); - if (!$callerType->isSuperTypeOf(new \PHPStan\Type\ObjectType('Mockery'))->yes()) { - return null; - } - if (!$this->isName($node->name, 'close')) { - return null; - } - $this->removeNode($node); - return null; - } - public function getRuleDefinition() : \Symplify\RuleDocGenerator\ValueObject\RuleDefinition - { - return new \Symplify\RuleDocGenerator\ValueObject\RuleDefinition('Removes mockery close from test classes', [new \Symplify\RuleDocGenerator\ValueObject\CodeSample\CodeSample(<<<'CODE_SAMPLE' -public function tearDown() : void -{ - \Mockery::close(); -} -CODE_SAMPLE -, <<<'CODE_SAMPLE' -public function tearDown() : void -{ -} -CODE_SAMPLE -)]); - } -} diff --git a/src/Application/VersionResolver.php b/src/Application/VersionResolver.php index da7b3ad483a..ed704d9e6ea 100644 --- a/src/Application/VersionResolver.php +++ b/src/Application/VersionResolver.php @@ -16,11 +16,11 @@ final class VersionResolver /** * @var string */ - public const PACKAGE_VERSION = '77a4582d5044446b8da43ab91a09082fa0413a23'; + public const PACKAGE_VERSION = '320cdcd8dec579a3bb9a6138d1e50f72a22c0419'; /** * @var string */ - public const RELEASE_DATE = '2022-03-03 11:31:45'; + public const RELEASE_DATE = '2022-03-03 17:31:12'; public static function resolvePackageVersion() : string { $process = new \RectorPrefix20220303\Symfony\Component\Process\Process(['git', 'log', '--pretty="%H"', '-n1', 'HEAD'], __DIR__); diff --git a/vendor/autoload.php b/vendor/autoload.php index 988f217dd7d..5ecd3c78b30 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitbaf8dc6c11080cb8e64f50b2c241eb3b::getLoader(); +return ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f::getLoader(); diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 1a23c84be19..2940cb88b6e 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -2146,9 +2146,6 @@ return array( 'Rector\\Laravel\\ValueObject\\AddArgumentDefaultValue' => $vendorDir . '/rector/rector-laravel/src/ValueObject/AddArgumentDefaultValue.php', 'Rector\\Laravel\\ValueObject\\ServiceNameTypeAndVariableName' => $vendorDir . '/rector/rector-laravel/src/ValueObject/ServiceNameTypeAndVariableName.php', 'Rector\\Laravel\\ValueObject\\TypeToTimeMethodAndPosition' => $vendorDir . '/rector/rector-laravel/src/ValueObject/TypeToTimeMethodAndPosition.php', - 'Rector\\MockeryToProphecy\\Collector\\MockVariableCollector' => $baseDir . '/rules/MockeryToProphecy/Collector/MockVariableCollector.php', - 'Rector\\MockeryToProphecy\\Rector\\ClassMethod\\MockeryCreateMockToProphizeRector' => $baseDir . '/rules/MockeryToProphecy/Rector/ClassMethod/MockeryCreateMockToProphizeRector.php', - 'Rector\\MockeryToProphecy\\Rector\\StaticCall\\MockeryCloseRemoveRector' => $baseDir . '/rules/MockeryToProphecy/Rector/StaticCall/MockeryCloseRemoveRector.php', 'Rector\\MysqlToMysqli\\Rector\\Assign\\MysqlAssignToMysqliRector' => $baseDir . '/rules/MysqlToMysqli/Rector/Assign/MysqlAssignToMysqliRector.php', 'Rector\\MysqlToMysqli\\Rector\\FuncCall\\MysqlFuncCallToMysqliRector' => $baseDir . '/rules/MysqlToMysqli/Rector/FuncCall/MysqlFuncCallToMysqliRector.php', 'Rector\\MysqlToMysqli\\Rector\\FuncCall\\MysqlPConnectToMysqliConnectRector' => $baseDir . '/rules/MysqlToMysqli/Rector/FuncCall/MysqlPConnectToMysqliConnectRector.php', diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 88b44b5b838..bae659a59a2 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitbaf8dc6c11080cb8e64f50b2c241eb3b +class ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f { private static $loader; @@ -22,15 +22,15 @@ class ComposerAutoloaderInitbaf8dc6c11080cb8e64f50b2c241eb3b return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitbaf8dc6c11080cb8e64f50b2c241eb3b', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); - spl_autoload_unregister(array('ComposerAutoloaderInitbaf8dc6c11080cb8e64f50b2c241eb3b', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitbaf8dc6c11080cb8e64f50b2c241eb3b::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f::getInitializer($loader)); } else { $classMap = require __DIR__ . '/autoload_classmap.php'; if ($classMap) { @@ -42,12 +42,12 @@ class ComposerAutoloaderInitbaf8dc6c11080cb8e64f50b2c241eb3b $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitbaf8dc6c11080cb8e64f50b2c241eb3b::$files; + $includeFiles = Composer\Autoload\ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequirebaf8dc6c11080cb8e64f50b2c241eb3b($fileIdentifier, $file); + composerRequirec291b87a1b4ce0b46a8e2f223b98b62f($fileIdentifier, $file); } return $loader; @@ -59,7 +59,7 @@ class ComposerAutoloaderInitbaf8dc6c11080cb8e64f50b2c241eb3b * @param string $file * @return void */ -function composerRequirebaf8dc6c11080cb8e64f50b2c241eb3b($fileIdentifier, $file) +function composerRequirec291b87a1b4ce0b46a8e2f223b98b62f($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index ab9da36cfa2..ec8a02bbefb 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitbaf8dc6c11080cb8e64f50b2c241eb3b +class ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f { public static $files = array ( '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', @@ -2520,9 +2520,6 @@ class ComposerStaticInitbaf8dc6c11080cb8e64f50b2c241eb3b 'Rector\\Laravel\\ValueObject\\AddArgumentDefaultValue' => __DIR__ . '/..' . '/rector/rector-laravel/src/ValueObject/AddArgumentDefaultValue.php', 'Rector\\Laravel\\ValueObject\\ServiceNameTypeAndVariableName' => __DIR__ . '/..' . '/rector/rector-laravel/src/ValueObject/ServiceNameTypeAndVariableName.php', 'Rector\\Laravel\\ValueObject\\TypeToTimeMethodAndPosition' => __DIR__ . '/..' . '/rector/rector-laravel/src/ValueObject/TypeToTimeMethodAndPosition.php', - 'Rector\\MockeryToProphecy\\Collector\\MockVariableCollector' => __DIR__ . '/../..' . '/rules/MockeryToProphecy/Collector/MockVariableCollector.php', - 'Rector\\MockeryToProphecy\\Rector\\ClassMethod\\MockeryCreateMockToProphizeRector' => __DIR__ . '/../..' . '/rules/MockeryToProphecy/Rector/ClassMethod/MockeryCreateMockToProphizeRector.php', - 'Rector\\MockeryToProphecy\\Rector\\StaticCall\\MockeryCloseRemoveRector' => __DIR__ . '/../..' . '/rules/MockeryToProphecy/Rector/StaticCall/MockeryCloseRemoveRector.php', 'Rector\\MysqlToMysqli\\Rector\\Assign\\MysqlAssignToMysqliRector' => __DIR__ . '/../..' . '/rules/MysqlToMysqli/Rector/Assign/MysqlAssignToMysqliRector.php', 'Rector\\MysqlToMysqli\\Rector\\FuncCall\\MysqlFuncCallToMysqliRector' => __DIR__ . '/../..' . '/rules/MysqlToMysqli/Rector/FuncCall/MysqlFuncCallToMysqliRector.php', 'Rector\\MysqlToMysqli\\Rector\\FuncCall\\MysqlPConnectToMysqliConnectRector' => __DIR__ . '/../..' . '/rules/MysqlToMysqli/Rector/FuncCall/MysqlPConnectToMysqliConnectRector.php', @@ -3848,9 +3845,9 @@ class ComposerStaticInitbaf8dc6c11080cb8e64f50b2c241eb3b public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitbaf8dc6c11080cb8e64f50b2c241eb3b::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitbaf8dc6c11080cb8e64f50b2c241eb3b::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitbaf8dc6c11080cb8e64f50b2c241eb3b::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitc291b87a1b4ce0b46a8e2f223b98b62f::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/scoper-autoload.php b/vendor/scoper-autoload.php index b00ff449c3a..fbfe9dc9668 100644 --- a/vendor/scoper-autoload.php +++ b/vendor/scoper-autoload.php @@ -9,8 +9,8 @@ $loader = require_once __DIR__.'/autoload.php'; if (!class_exists('AutoloadIncluder', false) && !interface_exists('AutoloadIncluder', false) && !trait_exists('AutoloadIncluder', false)) { spl_autoload_call('RectorPrefix20220303\AutoloadIncluder'); } -if (!class_exists('ComposerAutoloaderInitbaf8dc6c11080cb8e64f50b2c241eb3b', false) && !interface_exists('ComposerAutoloaderInitbaf8dc6c11080cb8e64f50b2c241eb3b', false) && !trait_exists('ComposerAutoloaderInitbaf8dc6c11080cb8e64f50b2c241eb3b', false)) { - spl_autoload_call('RectorPrefix20220303\ComposerAutoloaderInitbaf8dc6c11080cb8e64f50b2c241eb3b'); +if (!class_exists('ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f', false) && !interface_exists('ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f', false) && !trait_exists('ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f', false)) { + spl_autoload_call('RectorPrefix20220303\ComposerAutoloaderInitc291b87a1b4ce0b46a8e2f223b98b62f'); } if (!class_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !interface_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false) && !trait_exists('Helmich\TypoScriptParser\Parser\AST\Statement', false)) { spl_autoload_call('RectorPrefix20220303\Helmich\TypoScriptParser\Parser\AST\Statement'); @@ -59,9 +59,9 @@ if (!function_exists('print_node')) { return \RectorPrefix20220303\print_node(...func_get_args()); } } -if (!function_exists('composerRequirebaf8dc6c11080cb8e64f50b2c241eb3b')) { - function composerRequirebaf8dc6c11080cb8e64f50b2c241eb3b() { - return \RectorPrefix20220303\composerRequirebaf8dc6c11080cb8e64f50b2c241eb3b(...func_get_args()); +if (!function_exists('composerRequirec291b87a1b4ce0b46a8e2f223b98b62f')) { + function composerRequirec291b87a1b4ce0b46a8e2f223b98b62f() { + return \RectorPrefix20220303\composerRequirec291b87a1b4ce0b46a8e2f223b98b62f(...func_get_args()); } } if (!function_exists('scanPath')) {