override TExpression VisitBinary(BinaryExpressionAlias node) { if (node == null) { throw new ArgumentNullException(nameof(node)); } var l = Visit(node.Left); var c = VisitAndConvert <TLambdaExpression>(node.Conversion); var r = Visit(node.Right); return(MakeBinary(node, l, c, r)); }
/// <summary> /// Makes an expression representing a BinaryExpression with the given children. /// </summary> /// <param name="node">Original expression.</param> /// <param name="left">Left expression.</param> /// <param name="conversion">Conversion expression.</param> /// <param name="right">Right expression.</param> /// <returns>Representation of the original expression.</returns> protected abstract TExpression MakeBinary(BinaryExpressionAlias node, TExpression left, TLambdaExpression conversion, TExpression right);