private function resolveMagicScopes(IFunctionDeclaration $declaration)
{
$selfType = $this->scope->getScopeType();
$declarationType = $declaration->getClass() ?: $declaration->getTrait();
$selfConstant = $declarationType !== null ? ($declaration->getNamespace() !== null ? $declaration->getNamespace() . '\\' : '') . $declarationType : null;
$staticType = $this->scope->hasThis() ? $this->scope->getThisType() : $selfType;
$staticConstant = $staticType;
$parentType = get_parent_class($selfType) ?: null;
$parentConstant = $parentType;
return new MagicScopes($this->fullyQualify($selfType), $selfConstant, $this->fullyQualify($staticType), $staticConstant, $this->fullyQualify($parentType), $parentConstant);
//parent::class
}