This commit is contained in:
TomasVotruba 2017-10-19 16:21:03 +02:00
parent 36ba9ca360
commit 0e25693446

View File

@ -82,14 +82,10 @@ abstract class AbstractRector extends NodeVisitorAbstract implements RectorInter
protected function prependNodeAfterNode(Expr $nodeToPrepend, Node $positionNode): void
{
/** @var Node $parentNode */
/** @var Expression $parentNode */
$parentNode = $positionNode->getAttribute(Attribute::PARENT_NODE);
if (! $parentNode instanceof Expression) {
// validate?
return;
}
$expressionToPrepend = new Expression($nodeToPrepend);
$expressionToPrepend = $this->resolveToExpression($nodeToPrepend);
if (isset($this->expressionsToPrependAfter[$parentNode])) {
$this->expressionsToPrependAfter[$parentNode] = array_merge(
@ -103,14 +99,10 @@ abstract class AbstractRector extends NodeVisitorAbstract implements RectorInter
protected function prependNodeBeforeNode(Expr $nodeToPrepend, Node $positionNode): void
{
/** @var Node $parentNode */
/** @var Expression $parentNode */
$parentNode = $positionNode->getAttribute(Attribute::PARENT_NODE);
if (! $parentNode instanceof Expression) {
// validate?
return;
}
$expressionToPrepend = new Expression($nodeToPrepend);
$expressionToPrepend = $this->resolveToExpression($nodeToPrepend);
if (isset($this->expressionsToPrependBefore[$parentNode])) {
$this->expressionsToPrependBefore[$parentNode] = array_merge(
@ -123,6 +115,8 @@ abstract class AbstractRector extends NodeVisitorAbstract implements RectorInter
}
/**
* Adds new nodes before or after particular Expression nodes.
*
* @param Node[] $nodes
* @return Node[] array
*/
@ -159,4 +153,13 @@ abstract class AbstractRector extends NodeVisitorAbstract implements RectorInter
return $nodes;
}
private function resolveToExpression(Expr $exprNode): Expression
{
if ($exprNode instanceof Expression) {
return $exprNode;
}
return new Expression($exprNode);
}
}