/// <inheritdoc/> protected override Provider VisitIntersect(IntersectProvider provider) { OnRecursionEntrance(provider); var left = VisitCompilable(provider.Left); var right = VisitCompilable(provider.Right); OnRecursionExit(provider); if (left == provider.Left && right == provider.Right) { return(provider); } return(new IntersectProvider(left, right)); }
/// <summary> /// Visits the <see cref="IntersectProvider"/>. /// </summary> /// <param name="provider">Intersect provider.</param> /// <returns></returns> protected abstract Provider VisitIntersect(IntersectProvider provider);