/**
  * @param mixed afterFix
  * @param mixed beforeFix
  * @param null|Node|false|Node[] $fixedNode
  * The semantics is exacly like the NodeVisitor::leaveNode return value:
  *  * null:      $node stays as-is
  *  * false:     $node is removed from the parent array
  *  * array:     The return value is merged into the parent array (at the position of the $node)
  *  * otherwise: $node is set to the return value
  *
  * @param string                 $rule
  * @param Node                   $node      the previos node
  */
 public function __construct($afterFix, $beforeFix, $fixedNode, $rule, Node $node = null)
 {
     $this->beforeFix = $beforeFix;
     $this->afterFix = $afterFix;
     $this->fixedNode = $fixedNode;
     parent::__construct($rule, $node);
 }
 /**
  * @param string $title
  * @param string $description
  * @param string $rule
  * @param Node   $node
  */
 public function __construct($title, $description, $rule, Node $node = null)
 {
     $this->title = $title;
     $this->description = $description;
     parent::__construct($rule, $node);
 }