diff --git a/src/Parser/ClassParser.php b/src/Parser/ClassParser.php index d6baa50..c35f8f5 100644 --- a/src/Parser/ClassParser.php +++ b/src/Parser/ClassParser.php @@ -198,18 +198,18 @@ private function getParentClassStatements(): ?array { /** @var class-string[] $usedClasses */ $usedClasses = $this->getUsedClasses(); - $parentClass = $this->getParentClassName(); - if (null === $parentClass) { - return []; + try { + $pc = (new ReflectionClass($this->getNamespace() . '\\' . $this->getClassName()))->getParentClass(); } - - if (null !== $usedClasses[$this->getParentClassName()]) { - $parentClass = $usedClasses[$this->getParentClassName()]; + catch (\ReflectionException $e) { + throw new ReflectionException("Can't get parent class for [{$this->getNamespace()}\\{$this->getClassName()}]!", $e->getCode(), $e); + } + if (false === $pc) { + return []; } - $rc = new ReflectionClass($parentClass); - $filename = $rc->getFileName(); + $filename = $pc->getFileName(); if (false === $filename) { return [];