public function getEvaluationContextFactory();
public function __construct(O\Expression $expression, IParameterHasher $hasher, IFunction $function = null, $data = null) { parent::__construct($hasher, $data); if ($function !== null) { $this->contextFactory = $function->getEvaluationContextFactory(); $this->evaluator = $expression->asEvaluator($this->contextFactory->getEvaluationContext()); } else { $this->evaluator = $expression->asEvaluator(); } $this->data = $data; }