/// <inheritdoc/> protected override Provider VisitFilter(FilterProvider provider) { OnRecursionEntrance(provider); var source = VisitCompilable(provider.Source); OnRecursionExit(provider); var predicate = translate(provider, provider.Predicate); if (source == provider.Source && predicate == provider.Predicate) { return(provider); } return(new FilterProvider(source, (Expression <Func <Tuple, bool> >)predicate)); }
/// <summary> /// Visits <see cref="FilterProvider"/>. /// </summary> /// <param name="provider">Filter provider.</param> protected abstract Provider VisitFilter(FilterProvider provider);