override TExpression VisitBlock(BlockExpressionAlias node) { if (node == null) { throw new ArgumentNullException(nameof(node)); } var v = VisitAndConvert <ParameterExpressionAlias, TParameterExpression>(node.Variables); var e = Visit(node.Expressions); return(MakeBlock(node, v, e)); }
/// <summary> /// Makes an expression representing a BlockExpression with the given children. /// </summary> /// <param name="node">Original expression.</param> /// <param name="variables">Variables in the block.</param> /// <param name="expressions">Expressions in the block.</param> /// <returns>Representation of the original expression.</returns> protected abstract TExpression MakeBlock(BlockExpressionAlias node, ReadOnlyCollection <TParameterExpression> variables, ReadOnlyCollection <TExpression> expressions);