public function dieOnCircularReference(&$stk, Project $p) { if ($this->checked) { return; } if ($this->isReference()) { parent::dieOnCircularReference($stk, $p); } else { foreach ($this->selectorsList as $fileSelector) { if ($fileSelector instanceof DataType) { self::pushAndInvokeCircularReferenceCheck($fileSelector, $stk, $p); } } $this->checked = true; } }