/// <summary> /// Takes an expression tree and finds and evaluates all its evaluatable subtrees. /// </summary> public static Expression EvaluateIndependentSubtrees (Expression expressionTree, IEvaluatableExpressionFilter evaluatableExpressionFilter) { ArgumentUtility.CheckNotNull ("expressionTree", expressionTree); ArgumentUtility.CheckNotNull ("evaluatableExpressionFilter", evaluatableExpressionFilter); var partialEvaluationInfo = EvaluatableTreeFindingExpressionVisitor.Analyze (expressionTree, evaluatableExpressionFilter); var visitor = new PartialEvaluatingExpressionVisitor (partialEvaluationInfo, evaluatableExpressionFilter); return visitor.Visit (expressionTree); }