From 9693953c47435b59a1a5ecc71cf2292224e8fe6a Mon Sep 17 00:00:00 2001 From: BackEndTea Date: Sat, 20 Apr 2019 10:03:43 +0200 Subject: [PATCH] Remove rebase errors and simplify node ranges --- src/Visitor/MutationsCollectorVisitor.php | 27 +++++++++-------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/src/Visitor/MutationsCollectorVisitor.php b/src/Visitor/MutationsCollectorVisitor.php index 9bee7f213..87f2d7b38 100644 --- a/src/Visitor/MutationsCollectorVisitor.php +++ b/src/Visitor/MutationsCollectorVisitor.php @@ -109,36 +109,23 @@ public function leaveNode(Node $node): void continue; } - if ($isOnFunctionSignature - && $methodNode = $node->getAttribute(ReflectionVisitor::FUNCTION_SCOPE_KEY) - ) { - /** @var Node\Stmt\ClassMethod|Node\Expr\Closure $methodNode */ - if ($methodNode instanceof Node\Stmt\ClassMethod && $methodNode->isAbstract()) { - continue; - } - - if ($methodNode instanceof Node\Stmt\ClassMethod && $methodNode->getAttribute(ParentConnectorVisitor::PARENT_KEY) instanceof Node\Stmt\Interface_) { - continue; - } - } - if ($isOnFunctionSignature) { // hasExecutedMethodOnLine checks for all lines of a given method, // therefore it isn't making any sense to check any other line but first $isCoveredByTest = $this->codeCoverageData->hasExecutedMethodOnLine($this->filePath, $node->getLine()); - $linerange = range($node->getStartLine(), $node->getEndLine()); + $linerange = $this->getNodeRange($node); } else { $outerMostArrayNode = $this->getOuterMostArrayNode($node); $isCoveredByTest = false; + $linerange = $this->getNodeRange($outerMostArrayNode); - for ($line = $outerMostArrayNode->getStartLine(); $line <= $outerMostArrayNode->getEndLine(); ++$line) { + foreach ($linerange as $line) { if ($this->codeCoverageData->hasTestsOnLine($this->filePath, $line)) { $isCoveredByTest = true; break; } } - $linerange = range($outerMostArrayNode->getStartLine(), $outerMostArrayNode->getEndLine()); } if ($this->onlyCovered && !$isCoveredByTest) { @@ -190,4 +177,12 @@ private function getOuterMostArrayNode(Node $node): Node return $outerMostArrayParent; } + + /** + * @return array|int[] + */ + private function getNodeRange(Node $node): array + { + return range($node->getStartLine(), $node->getEndLine()); + } }