private static function getParameterExpression(\ReflectionParameter $parameter)
{
$typeHint = null;
if ($parameter->isArray()) {
$typeHint = 'array';
} elseif ($parameter->isCallable()) {
$typeHint = 'callable';
} elseif ($parameter->getClass() !== null) {
$typeHint = $parameter->getClass()->getName();
$typeHint = $typeHint[0] === '\\' ? $typeHint : '\\' . $typeHint;
}
return O\Expression::parameter($parameter->getName(), $typeHint, $parameter->isDefaultValueAvailable() ? O\Expression::value($parameter->getDefaultValue()) : null, $parameter->isPassedByReference(), method_exists($parameter, 'isVariadic') && $parameter->isVariadic());
}