protected function __construct(array $parameterExpressions, $usedParameters)
{
/** @var $parameterExpressions O\ParameterExpression[] */
foreach ($parameterExpressions as $parameter) {
if ($parameter->isVariadic()) {
throw new PinqException('Cannot construct %s: invalid expression for parameter \'%s\', variadic parameters are not supported.', get_class($this), $parameter->getName());
}
}
$this->expressions = $parameterExpressions;
$this->unusedExpressions = array_slice($parameterExpressions, $usedParameters);
foreach ($this->unusedExpressions as $parameter) {
if ($parameter->hasDefaultValue()) {
$defaultExpression = $parameter->getDefaultValue();
} else {
$defaultExpression = null;
$this->hasRequiredUnusedParameters = true;
$this->requiredUnusedExpressions[] = $parameter;
}
$this->unusedParameterDefaultMap[$parameter->getName()] = $defaultExpression;
}
}