public function __construct($returnsReference, $isStatic, array $parameterExpressions, array $usedVariables, array $bodyExpressions)
{
$this->returnsReference = $returnsReference;
$this->isStatic = $isStatic;
$this->parameters = self::verifyAll($parameterExpressions, ParameterExpression::getType());
$this->usedVariables = self::verifyAll($usedVariables, ClosureUsedVariableExpression::getType());
$this->bodyExpressions = self::verifyAll($bodyExpressions);
foreach ($this->usedVariables as $usedVariable) {
$this->usedVariableNames[] = $usedVariable->getName();
}
}