mirror of
https://github.com/rectorphp/rector.git
synced 2024-06-05 19:00:49 +00:00
Updated Rector to commit 7df4894bc7bd1bec704f8e428efb768d101e8984
7df4894bc7
[Performance][DeadCode] Early check has private methods before find() on dynamic call checks on RemoveUnusedPrivateMethodRector (#5687)
This commit is contained in:
parent
6fc08102f7
commit
9c449858d7
|
@ -82,10 +82,17 @@ CODE_SAMPLE
|
||||||
*/
|
*/
|
||||||
public function refactorWithScope(Node $node, Scope $scope) : ?Node
|
public function refactorWithScope(Node $node, Scope $scope) : ?Node
|
||||||
{
|
{
|
||||||
if ($this->hasDynamicMethodCallOnFetchThis($node)) {
|
$classMethods = $node->getMethods();
|
||||||
|
if ($classMethods === []) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if ($node->getMethods() === []) {
|
$filter = static function (ClassMethod $classMethod) : bool {
|
||||||
|
return $classMethod->isPrivate();
|
||||||
|
};
|
||||||
|
if (\array_filter($classMethods, $filter) === []) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if ($this->hasDynamicMethodCallOnFetchThis($classMethods)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
$hasChanged = \false;
|
$hasChanged = \false;
|
||||||
|
@ -113,7 +120,7 @@ CODE_SAMPLE
|
||||||
if (!$classReflection instanceof ClassReflection) {
|
if (!$classReflection instanceof ClassReflection) {
|
||||||
return \true;
|
return \true;
|
||||||
}
|
}
|
||||||
// unreliable to detect trait, interface doesn't make sense
|
// unreliable to detect trait, interface, anonymous class: doesn't make sense
|
||||||
if ($classReflection->isTrait()) {
|
if ($classReflection->isTrait()) {
|
||||||
return \true;
|
return \true;
|
||||||
}
|
}
|
||||||
|
@ -123,7 +130,6 @@ CODE_SAMPLE
|
||||||
if ($classReflection->isAnonymous()) {
|
if ($classReflection->isAnonymous()) {
|
||||||
return \true;
|
return \true;
|
||||||
}
|
}
|
||||||
// skips interfaces by default too
|
|
||||||
if (!$classMethod->isPrivate()) {
|
if (!$classMethod->isPrivate()) {
|
||||||
return \true;
|
return \true;
|
||||||
}
|
}
|
||||||
|
@ -133,9 +139,12 @@ CODE_SAMPLE
|
||||||
}
|
}
|
||||||
return $classReflection->hasMethod(MethodName::CALL);
|
return $classReflection->hasMethod(MethodName::CALL);
|
||||||
}
|
}
|
||||||
private function hasDynamicMethodCallOnFetchThis(Class_ $class) : bool
|
/**
|
||||||
|
* @param ClassMethod[] $classMethods
|
||||||
|
*/
|
||||||
|
private function hasDynamicMethodCallOnFetchThis(array $classMethods) : bool
|
||||||
{
|
{
|
||||||
foreach ($class->getMethods() as $classMethod) {
|
foreach ($classMethods as $classMethod) {
|
||||||
$isFound = (bool) $this->betterNodeFinder->findFirst((array) $classMethod->getStmts(), function (Node $subNode) : bool {
|
$isFound = (bool) $this->betterNodeFinder->findFirst((array) $classMethod->getStmts(), function (Node $subNode) : bool {
|
||||||
if (!$subNode instanceof MethodCall) {
|
if (!$subNode instanceof MethodCall) {
|
||||||
return \false;
|
return \false;
|
||||||
|
|
|
@ -19,12 +19,12 @@ final class VersionResolver
|
||||||
* @api
|
* @api
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public const PACKAGE_VERSION = 'b4212ed99d3aadc3ce6371c984b644b54252752e';
|
public const PACKAGE_VERSION = '7df4894bc7bd1bec704f8e428efb768d101e8984';
|
||||||
/**
|
/**
|
||||||
* @api
|
* @api
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
public const RELEASE_DATE = '2024-03-04 21:00:48';
|
public const RELEASE_DATE = '2024-03-05 00:12:12';
|
||||||
/**
|
/**
|
||||||
* @var int
|
* @var int
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue
Block a user