protected function getReturnType(\reflectionMethod $method)
{
$returnTypeCode = '';
if ($method->getName() !== '__construct' && method_exists($method, 'hasReturnType') && $method->hasReturnType()) {
switch (true) {
case (string) $method->getReturnType() === 'self':
$returnTypeCode = ': \\' . $method->getDeclaringClass()->getName();
break;
case (string) $method->getReturnType() === 'parent':
$returnTypeCode = ': \\' . $method->getDeclaringClass()->getParentClass()->getName();
break;
case $method->getReturnType()->isBuiltin():
$returnTypeCode = ': ' . $method->getReturnType();
break;
default:
$returnTypeCode = ': \\' . $method->getReturnType();
}
}
return $returnTypeCode;
}