public static Expression Reduce(Expression condition, bool strict) { Logger.Log($"Reducing condition {condition}", Indentation.Five); var reducer = new ConditionReducer(strict); var newNode = MethodReplacer.Replace(condition); var reduced = reducer.Visit(newNode); if (condition == reduced) { Logger.Log($"Expression '{condition}' could not be reduced any further", Indentation.Six); } return(reduced); }
public static Expression Replace(Expression expr) { var replacer = new MethodReplacer(); return(replacer.Visit(expr)); }