From 1bdbc9dadd2de26c2750625643c77028a2629813 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Mon, 2 Sep 2019 20:50:58 +0200 Subject: [PATCH] cleanup dead code --- .../ReturnTypeDeclarationRector.php | 59 ++++--------------- 1 file changed, 12 insertions(+), 47 deletions(-) diff --git a/packages/TypeDeclaration/src/Rector/FunctionLike/ReturnTypeDeclarationRector.php b/packages/TypeDeclaration/src/Rector/FunctionLike/ReturnTypeDeclarationRector.php index 32b6558aa91..cf7fce68ae2 100644 --- a/packages/TypeDeclaration/src/Rector/FunctionLike/ReturnTypeDeclarationRector.php +++ b/packages/TypeDeclaration/src/Rector/FunctionLike/ReturnTypeDeclarationRector.php @@ -3,7 +3,6 @@ namespace Rector\TypeDeclaration\Rector\FunctionLike; use PhpParser\Node; -use PhpParser\Node\FunctionLike; use PhpParser\Node\Stmt\ClassLike; use PhpParser\Node\Stmt\ClassMethod; use PhpParser\Node\Stmt\Function_; @@ -113,41 +112,22 @@ CODE_SAMPLE $returnTypeInfo = new ReturnTypeInfo($inferedTypes, $this->typeAnalyzer, $inferedTypes); - // @todo is it violation? - if ($this->hasNewTypeFromPreviousIteration($node)) { - // should override - is it subtype? - $possibleOverrideNewReturnType = $returnTypeInfo->getFqnTypeNode(); - if ($possibleOverrideNewReturnType !== null) { - if ($node->returnType !== null) { - $isSubtype = $this->isSubtypeOf($possibleOverrideNewReturnType, $node->returnType); + if ($this->isReturnTypeAlreadyAdded($node, $returnTypeInfo)) { + return null; + } - // @see https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters - if ($isSubtype && $this->isAtLeastPhpVersion('7.4')) { - // allow override - $node->returnType = $returnTypeInfo->getFqnTypeNode(); - } - } else { - $node->returnType = $returnTypeInfo->getFqnTypeNode(); - } - } - } else { - if ($this->isReturnTypeAlreadyAdded($node, $returnTypeInfo)) { - return null; - } + // should be previous overridden? + if ($node->returnType !== null && $returnTypeInfo->getFqnTypeNode() !== null) { + $isSubtype = $this->isSubtypeOf($returnTypeInfo->getFqnTypeNode(), $node->returnType); - // should be previosu node overriden? - if ($node->returnType !== null && $returnTypeInfo->getFqnTypeNode() !== null) { - $isSubtype = $this->isSubtypeOf($returnTypeInfo->getFqnTypeNode(), $node->returnType); - - // @see https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters - if ($this->isAtLeastPhpVersion('7.4') && $isSubtype) { - $node->returnType = $returnTypeInfo->getFqnTypeNode(); - } elseif ($isSubtype === false) { - $node->returnType = $returnTypeInfo->getFqnTypeNode(); - } - } else { + // @see https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters + if ($this->isAtLeastPhpVersion('7.4') && $isSubtype) { + $node->returnType = $returnTypeInfo->getFqnTypeNode(); + } elseif ($isSubtype === false) { $node->returnType = $returnTypeInfo->getFqnTypeNode(); } + } else { + $node->returnType = $returnTypeInfo->getFqnTypeNode(); } $this->populateChildren($node, $returnTypeInfo); @@ -211,9 +191,6 @@ CODE_SAMPLE $currentClassMethod->returnType = $resolvedChildType; - // let the method now it was changed now - $currentClassMethod->returnType->setAttribute(self::HAS_NEW_INHERITED_TYPE, true); - $this->notifyNodeChangeFileInfo($currentClassMethod); } @@ -246,16 +223,4 @@ CODE_SAMPLE return false; } - - /** - * @param ClassMethod|Function_ $functionLike - */ - private function hasNewTypeFromPreviousIteration(FunctionLike $functionLike): bool - { - if ($functionLike->returnType === null) { - return false; - } - - return (bool) $functionLike->returnType->getAttribute(self::HAS_NEW_INHERITED_TYPE, false); - } }