mirror of
https://github.com/rectorphp/rector.git
synced 2024-05-30 16:00:52 +00:00
Updated Rector to commit aa66151ff14da601b4b155f4a876ad2a2070259c
aa66151ff1
[Performance] Remove unnecessary FunctionLikeParamPositionNodeVisitor (#5491)
This commit is contained in:
parent
20754e0aaa
commit
c36d19ef56
|
@ -10,7 +10,6 @@ use PhpParser\Node\AttributeGroup;
|
|||
use PhpParser\Node\Expr\Array_;
|
||||
use PhpParser\Node\Expr\ArrayItem;
|
||||
use PhpParser\Node\Expr\Yield_;
|
||||
use PhpParser\Node\Param;
|
||||
use PhpParser\Node\Scalar\String_;
|
||||
use PhpParser\Node\Stmt\Class_;
|
||||
use PhpParser\Node\Stmt\ClassMethod;
|
||||
|
@ -24,7 +23,6 @@ use PHPStan\Type\TypeCombinator;
|
|||
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfo;
|
||||
use Rector\BetterPhpDocParser\PhpDocInfo\PhpDocInfoFactory;
|
||||
use Rector\Exception\ShouldNotHappenException;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
use Rector\NodeTypeResolver\PHPStan\Type\TypeFactory;
|
||||
use Rector\PhpParser\Node\BetterNodeFinder;
|
||||
use Rector\PHPStanStaticTypeMapper\Enum\TypeKind;
|
||||
|
@ -161,16 +159,12 @@ CODE_SAMPLE
|
|||
/**
|
||||
* @param \PHPStan\PhpDocParser\Ast\PhpDoc\PhpDocTagNode|\PhpParser\Node\Attribute $dataProviderNode
|
||||
*/
|
||||
private function inferParam(Class_ $class, Param $param, $dataProviderNode) : Type
|
||||
private function inferParam(Class_ $class, int $parameterPosition, $dataProviderNode) : Type
|
||||
{
|
||||
$dataProviderClassMethod = $this->resolveDataProviderClassMethod($class, $dataProviderNode);
|
||||
if (!$dataProviderClassMethod instanceof ClassMethod) {
|
||||
return new MixedType();
|
||||
}
|
||||
$parameterPosition = $param->getAttribute(AttributeKey::PARAMETER_POSITION);
|
||||
if ($parameterPosition === null) {
|
||||
return new MixedType();
|
||||
}
|
||||
/** @var Return_[] $returns */
|
||||
$returns = $this->betterNodeFinder->findInstanceOf((array) $dataProviderClassMethod->stmts, Return_::class);
|
||||
if ($returns !== []) {
|
||||
|
@ -310,13 +304,13 @@ CODE_SAMPLE
|
|||
private function refactorClassMethod(ClassMethod $classMethod, Class_ $class, array $dataProviderNodes) : bool
|
||||
{
|
||||
$hasChanged = \false;
|
||||
foreach ($classMethod->getParams() as $param) {
|
||||
foreach ($classMethod->getParams() as $parameterPosition => $param) {
|
||||
if ($param->type instanceof Node) {
|
||||
continue;
|
||||
}
|
||||
$paramTypes = [];
|
||||
foreach ($dataProviderNodes as $dataProviderNode) {
|
||||
$paramTypes[] = $this->inferParam($class, $param, $dataProviderNode);
|
||||
$paramTypes[] = $this->inferParam($class, $parameterPosition, $dataProviderNode);
|
||||
}
|
||||
$paramTypeDeclaration = TypeCombinator::union(...$paramTypes);
|
||||
if ($paramTypeDeclaration instanceof MixedType) {
|
||||
|
|
|
@ -19,12 +19,12 @@ final class VersionResolver
|
|||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const PACKAGE_VERSION = 'e1effe71627ad76eee1532420cf1a3430abff150';
|
||||
public const PACKAGE_VERSION = 'aa66151ff14da601b4b155f4a876ad2a2070259c';
|
||||
/**
|
||||
* @api
|
||||
* @var string
|
||||
*/
|
||||
public const RELEASE_DATE = '2024-01-22 19:41:14';
|
||||
public const RELEASE_DATE = '2024-01-22 21:24:21';
|
||||
/**
|
||||
* @var int
|
||||
*/
|
||||
|
|
|
@ -96,10 +96,6 @@ final class AttributeKey
|
|||
* @var string
|
||||
*/
|
||||
public const DO_NOT_CHANGE = 'do_not_change';
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
public const PARAMETER_POSITION = 'parameter_position';
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
|
|
|
@ -6,7 +6,6 @@ namespace Rector\NodeTypeResolver;
|
|||
use PhpParser\Node\Stmt;
|
||||
use PhpParser\NodeTraverser;
|
||||
use PhpParser\NodeVisitor\CloningVisitor;
|
||||
use Rector\NodeTypeResolver\NodeVisitor\FunctionLikeParamPositionNodeVisitor;
|
||||
use Rector\NodeTypeResolver\PHPStan\Scope\PHPStanNodeScopeResolver;
|
||||
use Rector\NodeTypeResolver\PHPStan\Scope\ScopeFactory;
|
||||
use Rector\PhpParser\NodeTraverser\FileWithoutNamespaceNodeTraverser;
|
||||
|
@ -33,7 +32,7 @@ final class NodeScopeAndMetadataDecorator
|
|||
* @var \PhpParser\NodeTraverser
|
||||
*/
|
||||
private $nodeTraverser;
|
||||
public function __construct(CloningVisitor $cloningVisitor, PHPStanNodeScopeResolver $phpStanNodeScopeResolver, FunctionLikeParamPositionNodeVisitor $functionLikeParamPositionNodeVisitor, ScopeFactory $scopeFactory, FileWithoutNamespaceNodeTraverser $fileWithoutNamespaceNodeTraverser)
|
||||
public function __construct(CloningVisitor $cloningVisitor, PHPStanNodeScopeResolver $phpStanNodeScopeResolver, ScopeFactory $scopeFactory, FileWithoutNamespaceNodeTraverser $fileWithoutNamespaceNodeTraverser)
|
||||
{
|
||||
$this->phpStanNodeScopeResolver = $phpStanNodeScopeResolver;
|
||||
$this->scopeFactory = $scopeFactory;
|
||||
|
@ -41,7 +40,6 @@ final class NodeScopeAndMetadataDecorator
|
|||
$this->nodeTraverser = new NodeTraverser();
|
||||
// needed for format preserving printing
|
||||
$this->nodeTraverser->addVisitor($cloningVisitor);
|
||||
$this->nodeTraverser->addVisitor($functionLikeParamPositionNodeVisitor);
|
||||
}
|
||||
/**
|
||||
* @param Stmt[] $stmts
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
<?php
|
||||
|
||||
declare (strict_types=1);
|
||||
namespace Rector\NodeTypeResolver\NodeVisitor;
|
||||
|
||||
use PhpParser\Node;
|
||||
use PhpParser\Node\FunctionLike;
|
||||
use PhpParser\NodeVisitorAbstract;
|
||||
use Rector\NodeTypeResolver\Node\AttributeKey;
|
||||
final class FunctionLikeParamPositionNodeVisitor extends NodeVisitorAbstract
|
||||
{
|
||||
public function enterNode(Node $node) : ?Node
|
||||
{
|
||||
if ($node instanceof FunctionLike) {
|
||||
foreach ($node->getParams() as $position => $param) {
|
||||
$param->setAttribute(AttributeKey::PARAMETER_POSITION, $position);
|
||||
}
|
||||
}
|
||||
return $node;
|
||||
}
|
||||
}
|
1
vendor/composer/autoload_classmap.php
vendored
1
vendor/composer/autoload_classmap.php
vendored
|
@ -1576,7 +1576,6 @@ return array(
|
|||
'Rector\\NodeTypeResolver\\NodeTypeResolver\\ScalarTypeResolver' => $baseDir . '/src/NodeTypeResolver/NodeTypeResolver/ScalarTypeResolver.php',
|
||||
'Rector\\NodeTypeResolver\\NodeTypeResolver\\StaticCallMethodCallTypeResolver' => $baseDir . '/src/NodeTypeResolver/NodeTypeResolver/StaticCallMethodCallTypeResolver.php',
|
||||
'Rector\\NodeTypeResolver\\NodeTypeResolver\\TraitTypeResolver' => $baseDir . '/src/NodeTypeResolver/NodeTypeResolver/TraitTypeResolver.php',
|
||||
'Rector\\NodeTypeResolver\\NodeVisitor\\FunctionLikeParamPositionNodeVisitor' => $baseDir . '/src/NodeTypeResolver/NodeVisitor/FunctionLikeParamPositionNodeVisitor.php',
|
||||
'Rector\\NodeTypeResolver\\Node\\AttributeKey' => $baseDir . '/src/NodeTypeResolver/Node/AttributeKey.php',
|
||||
'Rector\\NodeTypeResolver\\PHPStan\\ObjectWithoutClassTypeWithParentTypes' => $baseDir . '/src/NodeTypeResolver/PHPStan/ObjectWithoutClassTypeWithParentTypes.php',
|
||||
'Rector\\NodeTypeResolver\\PHPStan\\ParametersAcceptorSelectorVariantsWrapper' => $baseDir . '/src/NodeTypeResolver/PHPStan/ParametersAcceptorSelectorVariantsWrapper.php',
|
||||
|
|
1
vendor/composer/autoload_static.php
vendored
1
vendor/composer/autoload_static.php
vendored
|
@ -1790,7 +1790,6 @@ class ComposerStaticInit3aa8fc9c37eb79c784df0b556be25aa0
|
|||
'Rector\\NodeTypeResolver\\NodeTypeResolver\\ScalarTypeResolver' => __DIR__ . '/../..' . '/src/NodeTypeResolver/NodeTypeResolver/ScalarTypeResolver.php',
|
||||
'Rector\\NodeTypeResolver\\NodeTypeResolver\\StaticCallMethodCallTypeResolver' => __DIR__ . '/../..' . '/src/NodeTypeResolver/NodeTypeResolver/StaticCallMethodCallTypeResolver.php',
|
||||
'Rector\\NodeTypeResolver\\NodeTypeResolver\\TraitTypeResolver' => __DIR__ . '/../..' . '/src/NodeTypeResolver/NodeTypeResolver/TraitTypeResolver.php',
|
||||
'Rector\\NodeTypeResolver\\NodeVisitor\\FunctionLikeParamPositionNodeVisitor' => __DIR__ . '/../..' . '/src/NodeTypeResolver/NodeVisitor/FunctionLikeParamPositionNodeVisitor.php',
|
||||
'Rector\\NodeTypeResolver\\Node\\AttributeKey' => __DIR__ . '/../..' . '/src/NodeTypeResolver/Node/AttributeKey.php',
|
||||
'Rector\\NodeTypeResolver\\PHPStan\\ObjectWithoutClassTypeWithParentTypes' => __DIR__ . '/../..' . '/src/NodeTypeResolver/PHPStan/ObjectWithoutClassTypeWithParentTypes.php',
|
||||
'Rector\\NodeTypeResolver\\PHPStan\\ParametersAcceptorSelectorVariantsWrapper' => __DIR__ . '/../..' . '/src/NodeTypeResolver/PHPStan/ParametersAcceptorSelectorVariantsWrapper.php',
|
||||
|
|
Loading…
Reference in New Issue
Block a user