/**
  * @param array|\ArrayIterator $node
  *
  * @return array|\ArrayIterator
  */
 private function findModifiedToNonStaticVar($node)
 {
     if (is_array($node) === true) {
         $nodes = $node;
     } elseif (is_string($node) === false && method_exists($node, 'getIterator') === true) {
         $nodes = $node->getIterator();
     } else {
         return $node;
     }
     foreach ($nodes as $key => &$stmt) {
         if ($stmt instanceof Expr\ClassConstFetch) {
             $isMovedToNonStatic = $this->dispatcher->isMovedToNonStaticVar($stmt->name);
             if ($isMovedToNonStatic === true) {
                 $var = new Expr\Variable('this->' . $stmt->name);
                 if (is_array($node) === true) {
                     $node[$key] = $var;
                 } else {
                     $node->{$key} = $var;
                 }
             }
         } else {
             $stmt = $this->findModifiedToNonStaticVar($stmt);
             if (is_array($node) === true) {
                 $node[$key] = $stmt;
             } else {
                 $node->{$key} = $stmt;
             }
         }
     }
     return $node;
 }